티스토리 뷰
라인을 잘 기억해주셔야합니다.
해당 코드를 실행하면 아래와 같은 자주 보던 형태를 만들 수 있습니다.
코드를 보시면 grid-auto-rows를 설정해 놨기 때문에 칸이 모자라면 row를 1fr 크기로 만들게 됩니다. 이제 이 기본형태를 통해서 아이템을 여러 셀을 차지하도록 해보겠습니다.
grid-column과 grid-row를 통해서 차지하는 공간 늘리기
grid-row를 사용했습니다.
변화가 느껴지시나요? 두번째 아이템에 "grid-row: 1 / 3"이라는 값을 주었습니다. 아이템2는 해당 공간을 차지했고, 나머지 아이템들은 뒤로 밀리게 됩니다. 공간이 모자라기 때문에 아이템 6은 밑으로 새칸을 만들면서 내려갔습니다.
grid-column을 사용했습니다.
이번엔 두번째 아이템에 "grid-column: 2 / 4"라는 값을 주었습니다. 세로선 2번부터 4번까지 차지한 모습을 볼 수 있습니다.
선의 시작과 끝을 지정하지 않고 "span 2"와 같은 형태를 값으로 주면 자기 위치에서 시작하고 해당 방향으로 2칸을 차지합니다.
단축형인 grid-area 알아보기
grid-row는 grid-row-start와 grid-row-end로 따로 값을 줄 수 있습니다. 또 이처럼 grid-column은 grid-column-start와 grid-column-end로 값을 따로 줄 수 있습니다. grid-row와 grid-column 자체가 하나의 단축형인 것이죠. 간편하게 사용하기 위해서 이 둘을 사용하는 단축형인 grid-area도 있습니다.
grid-area는 row-start / column-start / row-end / column-end 의 순서로 값을 가집니다.
span을 사용한다면 "grid-area: span 2 / span 2" 처럼 사용할 수도 있습니다. 이렇게 값을 줄 땐 row값이 span 2, column 값이 span 3입니다.
만약 공간이 겹친다면 어떻게 될까요? grid-area를 사용하다보면 공간이 겹쳐지게 될 수도 있습니다. 그리드는 이처럼 아무 문제 없이 공간을 쉽게 겹칠 수도 있습니다. 그 대신 더 뒤에 적용한 효과가 위로 나타납니다. 이때는 z-index를 통해서 위에 보일 것을 정할 수 있습니다.
하나의 아이템만 위치 조정하기
1번 아이템만 형태가 다릅니다.
위 그림은 아이템 1에 "justify-self: center"가 적용되어 있는 것입니다. 물론 align-self도 있습니다. "-self" 형태로 각 아이템들에게 따로 값을 지정할 수 있습니다.
단축형인 place-self도 있습니다. align-self와 justify-self 순서로 값을 받습니다.
아이템 순서 지정 해주기
순서 바꾸기
아이템 3이 제일 먼저 나와있습니다. 이는 item 3에 "order: -1"이라는 값을 주었기 때문입니다. 기본적으로 각 아이템들은 0이라는 값을 가집니다. 그래서 젤 먼저 두려고 음수의 값을 준 것입니다. 1이라는 값을 준다면 아이템3이 젤 뒤로 이동하는 것도 확인할 수 있습니다.
왜 레이아웃을 짤 때 그리드를 사용하는 지 느껴지시나요? 이런 멋진 기능들이 있기 때문입니다. 그리드 아주 멋지지 않나요?
'Frontend-dev > HTML-CSS-JS' 카테고리의 다른 글
css 그리드로 간단한 페이지 만들어보기 (0) | 2018.11.02 |
---|---|
min-content, max-content, minmax 활용과 css grid의 auto-fit, auto-fill (0) | 2018.10.31 |
css grid 컨테이너 속성 중에서 flexbox와 유사한 기능의 속성들 (0) | 2018.10.30 |
css grid 컨테이너에 들어갈 수 있는 속성들 (0) | 2018.10.30 |
css의 transform과 transform-origin 활용하기 (0) | 2018.10.30 |