CSS 그리드 레이아웃 minmax () 사용 방법
그만큼 CSS 그리드 레이아웃 모듈 다음을 도입하여 반응 형 디자인을 한 단계 끌어 올립니다. 새로운 종류의 유연성 전에는 보지 못했던 이제 우리는 맞춤 그리드 정의 blazingly 빠른 순수하게 CSS와 함께하지만, CSS는 그리드도있다 많은 숨겨진 보석 그리드를 더 조정하고 복잡한 레이아웃을 구현할 수 있습니다..
그만큼 최소 최대()
기능 이 덜 널리 알려진 기능 중 하나입니다. 그리드 트랙의 크기를 정의 할 수 있습니다. 최소 범위에서 최대 범위로 그리드가 각 사용자의 뷰포트에 최상의 방법으로 적용될 수 있도록.
통사론
의 구문 최소 최대()
함수는 비교적 간단하다. 두 가지 주장: 최소값과 최대 값 :
minmax (최소, 최대)
그만큼 최소
값 더 작아야한다. ~보다 최대
, 그렇지 않으면 최대
브라우저에서 무시된다..
우리는 최소 최대()
~처럼 기능하다 가치 그리드 - 템플리트 - 컬럼
또는 격자 - 템플릿 - 행
속성 (또는 둘 다). 이 예에서는 훨씬 자주 사용하는 케이스이므로 이전을 사용합니다.
.컨테이너 디스플레이 : 그리드; grid-template-columns : minmax (100px, 200px) 1fr 1fr; grid-template-rows : 100px 100px 100px; 그리드 간격 : 10px;
아래의 Codepen 데모에서 HTML 및 CSS 코드 우리는 기사 전체에서 사용할 것입니다..
우리는 사용할 수 있습니다. 다른 종류의 가치 내부 최소 최대()
함수는 모두 사용자 정의 그리드의 종류에 따라 다릅니다..
정적 길이 값
Google에서 사용할 수있는 기본적인 두 가지 방법이 있습니다. 최소 최대()
기능과 함께 정적 길이 값.
첫째, 우리는 최소 최대()
하나의 그리드 열에 대해서만 다른 열의 너비를 단순 정적 값 (여기에 픽셀)으로 정의하십시오..
grid-template-columns : minmax (100px, 200px) 200px 200px;
아래의 gif 데모에서이 레이아웃이 반응이 없다, 그러나 첫 번째 열에는 약간의 유연성. 두 번째 및 세 번째 열은 고정 폭 (200px)을 유지하는 반면 첫 번째 열은 100px에서 200px까지를 유지합니다., 사용 가능한 공간을 기반으로.
두 번째로, 우리는 너비를 정의 할 수 있습니다. 두 개 이상의 그리드 열 ~을 사용하여 최소 최대()
. 최소값과 최대 값은 모두 정적이므로 기본적으로 그리드는 반응이 없다. 그러나 열 자체는 융통성 있는, 하지만 100px에서 200px 사이에서만 가능합니다. 그들 동시에 성장하고 수축시키다 뷰포트 크기를 변경하면.
grid-template-columns : minmax (100px, 200px) minmax (100px, 200px) minmax (100px, 200px);
우리는 또한 사용 반복()
기능 함께 togehter 최소 최대()
. 따라서 이전 코드 스 니펫은 다음과 같이 작성할 수 있습니다.
grid-template-columns : repeat (3, minmax (100px, 200px));
동적 길이 값
고정 값과 별도로 최소 최대()
함수는 또한 받아 들인다. 백분율 단위 그리고 새로운 분수 (fr) 단위 인수로. 이를 사용하여 두 가지 반응이 빠른 과 치수를 바꾸다. 이용 가능한 공간에 따라.
아래의 코드는 첫 번째 열의 폭 50 % ~ 80 % 두 번째와 세 번째 남은 공간을 고르게 공유.
grid-template-columns : minmax (50 %, 80 %) 1fr 1fr;
동적 값을 최소 최대()
기능을 설정하려면 의미있는 규칙. 예를 보여 드리겠습니다. 그리드가 떨어져 나간다.:
grid-template-columns : minmax (1fr, 2fr) 1fr 1fr;
이 규칙은 브라우저가 그렇듯이 의미가 없습니다. 결정할 수 없다. 할당 할 값 최소 최대()
기능. 최소값은 1fr 1fr 1fr
열 너비, 최대 값은 2fr 1fr 1fr
. 그러나 두 가지 모두 매우 작은 화면에서도 가능합니다. 저기있다. 브라우저와 관련된 것은 아무것도 없다..
결과는 다음과 같습니다.
정적 및 동적 값 결합
또한 정적 및 동적 값 결합. 예를 들어 위의 Codepen 데모에서는 minmax (100px, 200px) 1fr 1fr;
첫 번째 열이있는 표를 만드는 규칙 100px와 200px 사이의 범위 나머지 공간은 다른 두 사람 사이에 균등하게 공유 됨.
grid-template-columns : minmax (100px, 200px) 1fr 1fr;
뷰포트가 커지면 먼저 첫 번째 열이 100px에서 200px로 커집니다. fr 단위에 의해 지배되는 다른 두 사람은 성장하기 시작합니다. 첫 번째 것이 최대 너비에 도달 한 후에 만. 소수 단위의 목표는 사용 가능한 (남은) 공간을 나누는 것이므로 논리적입니다..
그만큼 최소 함량
, 최대 콘텐츠
, 과 자동
키워드
거기에 세 번째 종류의 가치 우리는 최소 최대()
기능. 그만큼 최소 함량
, 최대 콘텐츠
, 과 자동
키워드는 그리드 트랙의 크기를 내용물.
최대 콘텐츠
그만큼 최대 콘텐츠
예어 그리드 열이 있어야한다고 브라우저에 지시합니다. 포함되는 가장 넓은 요소만큼 넓다..
아래의 데모에서 나는 400 픽셀 너비의 이미지 첫 번째 그리드 트랙 내부에서 다음 CSS 규칙을 사용했습니다 (기사 마지막 부분에 코드가 수정 된 Codepen 데모를 찾을 수 있습니다):
.컨테이너 grid-template-columns : max-content 1fr 1fr; / ** * minmax () 표기법과 동일 : * grid-template-columns : minmax (max-content, max-content) 1fr 1fr; * /
나는 사용하지 않았다. 최소 최대()
표기법은 아직 알려지지 않았지만 위의 코드 주석에서 동일한 코드가 어떻게 보이는지 확인할 수 있습니다 (여기서는 불필요 함).
보시다시피 첫 번째 그리드 열은 가장 넓은 요소 (여기서는 이미지)만큼 넓습니다. 이렇게하면 사용자는 항상 이미지를 볼 수 있습니다. 풀 사이즈로. 그러나 특정 뷰포트 크기에서이 레이아웃은 반응이 없다.
최소 함량
그만큼 최소 함량
예어 그리드 열이 너비와 같을 필요가 있음을 브라우저에 지시합니다. 포함 된 가장 좁은 요소, 그런 식으로 넘치지 않는다..
첫 번째 열의 값을 다음과 같이 변경하면 이미지가있는 이전 데모가 어떻게 보이는지 보겠습니다. 최소 함량
:
.container grid-template-columns : min-content 1fr 1fr; / ** * minmax () 표기법과 동일 : * grid-template-columns : minmax (min-content, min-content) 1fr 1fr; * /
나는 첫 번째 그리드 셀의 전체 크기를 볼 수 있도록 이미지 아래에 녹색 배경을 남겼다..
보시다시피 첫 번째 열은 가장 작은 너비를 유지합니다. 오버 플로우없이 달성 될 수있다.. 이 예에서는 4 번째 및 7 번째 그리드 셀의 최소 너비로 정의됩니다. 심
과 글꼴 크기
첫 번째 셀의 이미지와 같은 속성 0으로 축소 될 수있다. 넘치지 않고.
표 셀에 텍스트 문자열이 포함 된 경우, 최소 함량
~ 될거야. 가장 긴 단어의 너비와 같다., 이는 오버 플로우없이 더 이상 축소 될 수없는 가장 작은 요소이기 때문입니다. BitsOfCode의 훌륭한 기사는 다음과 같습니다. 최소 함량
과 최대 콘텐츠
모눈 셀에 텍스트 문자열이 포함되어있을 때 작동합니다..
사용 최소 함량
과 최대 콘텐츠
함께
우리가 용도 최소 함량
과 최대 콘텐츠
함께 내부 최소 최대()
함수를 사용하면 다음과 같은 그리드 열을 얻을 수 있습니다.
- 반응이 좋다
- 오버플로가 없다.
- 그것의 가장 넓은 요소보다 더 넓지는 않다.
.container grid-template-columns : minmax (min-content, max-content) 1fr 1fr;
우리는 또한 최소 함량
과 최대 콘텐츠
키워드 다른 길이 값과 함께 내부 최소 최대()
함수가 규칙을 이해할 때까지 예를 들어, minmax (25 %, 최대 함유량)
또는 minmax (최소 콘텐츠, 300px)
둘 다 유효한 규칙이 될 것이다..
자동
마지막으로, 자동
예어 의 주장으로 최소 최대()
기능.
언제 자동
~이다. 최대로 사용, 그 값은 다음과 같다. 최대 콘텐츠
.
때 최소한으로 사용된다., 그 값은 최소 너비 / 최소 높이
규칙, 즉 자동
때로는 최소 함량
, 그러나 항상은 아니며.
앞의 예제에서, 최소 함량
동등하다 자동
, 첫 번째 격자 열의 최소 너비는 항상 최소 높이보다 작기 때문입니다. 따라서 속한 CSS 규칙은 다음과 같습니다.
.container grid-template-columns : minmax (min-content, max-content) 1fr 1fr;
다음과 같이 작성할 수도 있습니다.
.container grid-template-columns : minmax (자동, 자동) 1fr 1fr;
그만큼 자동
키워드는 또한 일 수있다 다른 정적 및 동적 단위와 함께 사용 (픽셀, fr 단위, 백분율 등)을 최소 최대()
함수, 예를 들면 minmax (자동, 300px)
유효한 규칙이 될 것이다..
어떻게 테스트 할 수 있습니까? 최소 함량
, 최대 콘텐츠
, 과 자동
키워드는 최소 최대()
다음 Codepen 데모에서 작동합니다.