GRID
왜? 이제와서 그리드를 할까..? 아래 사진처럼 박스를 나열하는 경우를 생각해보자. 이렇게 나열하는 방법은 뭐... 많이 있을거다. 그중에서 하나의 row
컨테이너를 만들고 그 안에 inline-box
을 나열하는 방법이 아마 가장 쉬울거라고 생각이 되는데.... 이거 하나하나 해주는거 정말 생각만해도 끔찍하다.
하지만, 그리드를 사용하면 위와같은 레이아웃은 정말 한방에 끝나버린다... 그리드는 마법이다.
기타 설정
grid-gap
grid-gap
그리드 셀 사이의 간격을 지정한다. 상하, 좌우 모두 지정한다. 단, 셀 사이의 간격만 지정할 뿐 셀이 바깥과 닿아있는 곳에는 적용되지 않는다. 그리드를 사용할 때는 margin
을 사용하지 말자!!!
grid-row-gap
, grid-column-gap
grid-row-gap
, grid-column-gap
그리드열, 로우 사이의 간격을 지정한다.
COLUMNS
grid-template-column
grid-template-column
하나의 row
에 얼마나 많은 열을 생성할지, 그리고 각 열의 사이즈를 지정할 수 있다.
grid-template-column: 33% 33% 33%
grid-template-column: 1fr 2fr 1fr
grid-template-columns: repeat(10, 1fr);
fr
은 fraction
이라고 한다.
grid-auto-columns
grid-auto-columns
열의 수를 지정하지 않을 때는 이걸 사용하면 된다.
ROWS
grid-template-rows
grid-template-rows
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, minmax(150px, auto));
몇 개의 row
까지 속성을 적용할지 결정할 수 있다.
3 대신에 auto-fill
을 입력하면 grid-auto-rows
와 동일한 효과를 낼 수 있다. grid-template-columns: repeat(auto-fill, minmax(20%, auto));
minmax
는 최소, 최대를 의미한다. 따라서 row
의 최소는 150px 최대는 내부요소의 크기에 따른다.
grid-auto-rows
grid-auto-rows
grid-template-rows
는 큰 문제가 있었다. 우리가 그려야하는 행 의 수가 정해져있을 때는 그 grid-template-rows
를 사용하면 되지만 그렇지 않은 경우에는 이걸 쓰면 된다.
높이만 지정하면 된다.
grid-auto-rows: minmax(200px, auto)
Grid-Lines
이전에 그리드를 사용하면 박스의 위치를 원하는 대로 바꿀 수 있다고 했다. 그 방법이 바로
grid-lines
다.
위의 그리드의 사이즈는 몇일까? 4 x 6 이다. 즉 그리드 라인의 값은 + 1
이 된다. 1번부터 6번 박스까지 각 박스의 위치를 grid-lines
를 이용해서 나타내보자
1번 박스
폭: 시작점은 1, 끝점은 3 열: 지정할 필요없음
2번 박스
폭: 시작점은 3, 끝점은 7 열: 지정할 필요 없음
3번 박스
폭: 시작점은 1, 끝점은 4 열: 시작점은 2, 끝점은 4
4번 박스
폭: 시작점은 4, 끝점은 7 열: 시작점은 2, 끝점은 4
5번 박스
폭: 시작점은 1, 끝점은 3 열: 시작점은 4, 끝점은 5
6번 박스
폭: 시작점은 3, 끝점은 7 열: 시작점은 4, 끝점은 5
align-self, justify-self
그리드 셀 안에서 자기 자신을 정렬하는 명령어다. 아래의 링크를 보면 된다.
IE!!
표준 | IE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Last updated