Search

#006 #Grid 개요

Grid layout

css에서 호환하는 grid 레이아웃 시스템은 행과 열로 이루어져있다. 사용자들에게 좀 더 쉽게 웹을 디자인하고 요소들을 위치시키는데 도움을 주기 위함 이라고 한다.

Grid가 적용되는 브라우저 버전

각 브라우저의 해당 버전이상에서만 호환이 되니 참고!

GRID 레이아웃 3x3예시

이렇게 9가지의 요소가 격자로 표현될 수 있게 도와주는 것이 GRID 레이아웃이다.
GRID 레이아웃 사용하기 위해 필요한 개념
GRID로 정렬하기 위해서는 부모 패널이 있어야 되고, 그 안에 요소들을 넣어야 된다.
/* 부모가 필요한 정의 */ .grid-container { display: grid; grid-template-columns: auto auto auto; } /* 자식이 필요한 정의 */ <div class="grid-container"> /* 이렇게 부모 내부에 자식이 요소로 들어가야된다.*/ <div class="grid-item">1</div> <div class="grid-item">2</div> <div class="grid-item">3</div> <div class="grid-item">4</div> <div class="grid-item">5</div> <div class="grid-item">6</div> <div class="grid-item">7</div> <div class="grid-item">8</div> <div class="grid-item">9</div> </div>
CSS
복사
부모 CSS설정에서 displaygrid 로 설정
grid-template-columnsauto auto auto; 로 설정
auto auto auto를 3개가 반복이 되었는데, 이것은 추가되는 요소를 모두 가로 3개 요소로 나열하겠다는 뜻이다.
만약 8개가 추가되면 9번째 자리는 빈자리가 된다.
GRID 내부 요소를 비율을 직접 지정하고 싶다면 fr을 사용
/* 해당라인을 부모의 속성에 넣는다. */ grid-template-columns: 1fr 1fr 1fr 1fr;
CSS
복사
1fr이 하나만 있으면 전체비율을 1로 나눠서 전체 비율을 차지한다.
1fr이 두 개 있으면 전체 비율을 1:1 로 나누서 50:50이 된다.
해당 예시는 4개가 있기 때문에 1fr이 1/4이 비율이 되었다.
계산은 총 fr 합 대비 부분 fr로 정의 된다.
만약, 1fr 3fr 1fr 으로 설정한다면, 총 합인 5를 전체비율로 잡고 1/5, 3/5, 1/5로 공간을 차지한다.

GRID에 갭을 주고 싶을 때

칼럼(Column)과 로우(Row)의 개념 정리
칼럼은 열이라고 생각하면 되며, 각 사이에 있는 세로 틈을 Column Gap 이라 한다.
로우는 행이라고 생각하면 되며, 각 사이에 있는 가로 틈을 Row Gap 이라 한다.
옆에 보이는 것과 같이 Column GapRow Gap을 다시 확인해보자.
GRID에 Gap을 넣을려면 부모 속성에 아래 코드를 넣으면된다.
grid-gap: 20px; -------> 가로 세로 한번에 갭 20픽셀을 넣는다. ----------------- grid-row-gap: 20px -------> 가로 갭을 20픽셀 넣는다. ----------------- grid-column-gap: 20px -------> 세로 갭을 20픽셀 넣는다.
CSS
복사
grid-gap: 20px; 을 넣으면 각 요소에 가로 세로로 갭이 생긴다.
grid-row-gap: 20px 을 넣으면 가로 갭만 들어간다.
grid-column-gap: 20px 을 넣으면 세로 갭만 들어간다.
마지막요소 속성 걸기 문법
/*마지막요소 속성 추가*/ .grid-item: last-child { color: red; }
CSS
복사
이미 선언되어있는 부모와 자식 속성을 건드리지 않고 .자식클래스명 : last-child {} 로 속성 추가가 가능하다.
마지막 요소인 9번째 요소가 빨간색으로 변했다.
중괄호 안에 grid-column-start: 1; 속성을 추가해보자.
.grid-item:last-child { color: red; grid-column-start: 1; }
CSS
복사
마지막 요소가 첫번째 열에 배치가 되고 나머지는 빈 공간이 되었다.
grid-column-start: 3 span; 문법을 사용하면 컬럼 갯수만큼 공간을 차지한다.
.grid-item:last-child { color: red; grid-column-start: 3span; }
CSS
복사
grid-column-end: 2 span; : 두칸 차지
span 을 쓰지 않고 1/3, 2/3, 3/3 으로도 표현이 가능하다. 하지만 이를 사용하기 위해서는 컬럼 세로선의 번호를 알아야 한다.
grid-column: 1/3; : 두칸 차지
물론 가로도 가능하다. 가로선의 번호 명시 방법을 보자.
그럼 가로 세로를 합쳐서도 가능하다. 두 개를 같이 적용해보자.
.grid-item:last-child { color: red; grid-column: 1/3; grid-row: 1/3; }
CSS
복사
가로 두 공간, 세로 두 공간을 차지하였다.
팁정리
선택자
태그 명또는 클래스 클래스 사용할 떄는 .
파라메터는 띄어쓰기로 구분한다. 마지막은 세미콜론
아이콘 이모지가 제일 편하다.
이모지로 할수 없으면 svg로 하면 더 수비다.
그 외에대한 경우는 이미지 첨부인데, 그러기 위해서는 부모 relative 자식 abolute구현해야된다.
배치는 부모가 관리한다.
제트 인덱스 z-index
몇번째로 겹치는지 말하느느 인덱스