CSS Grid
-
2차원의 레이아웃 시스템 제공
-
Flexible Box도 좋지만 복잡한 레이아웃에서는 Grid가 더 좋음
-
핵(Hack)으로 불린 다양한 레이아웃 대체 방식들을 해결하기 위해 만들어진 특별한 CSS 모듈
Grid Properties
-
Container와 Item이라는 두가지 개념으로 구분 되어있음
display
-
Grid Container를 정의
-
정의된 컨테이너의 자식 요소들은 자동으로 Grid Items로 정의 됨
-
그리드를 사용하기 위해 컨테이너에 필수로 작성
-
grid: Block 특성의 Grid Container를 정의
-
inline-grid: inline 특성의 Grid Container를 정의
grid-template-rows
-
명시적 행의 크기를 정의
-
동시에 라인의 이름도 정의
-
fr(fraction, 공간 비율) 단위 사용 가능
-
repeat() 함수 사용 가능
-
grid-template-rows: 1행크기 2행크기;
-
grid-template-rows: [선이름] 1행크기 [선이름] 2행크기;
grid-template-columns
-
명시적 열의 크기 정의
-
라인의 이름도 정의
-
fr단위 사용 가능
-
repeat() 함수 사용 가능
-
grid-template-columns: 1열크기 2열크기;
-
grid-template-clolumns: [선이름] 1열크기 [선이름] 2열크기
-
grid-row, grid-column
-
행 혹은 열을 확장할 수 있음
-
grid-row: 1/ 3; -> 1번선에서 3번선까지 행 확장하기
grid-template-areas
-
지정된 그리드 영역 이름을 참조해 그리드 템플릿을 생성함
-
grid-area는 grid item에 적용하는 속성
-
grid-remplate-areas:
-
"header header header"
-
"main main aside"
-
"footer footer footer"
-
-> 1행에 헤더 3칸, 2행에 메인2칸 어사이드1칸, 3행에 푸터 3칸
row-gap
-
각 행과 행사이의 간격(Gutter)
-
그리드 선의 크기를 지정함
column-gap
-
각 열과 열사이의 간격 설정
-
gap: 행과행사이 열과열사이;
grid-auto-rows
-
암시적 행의 크기를 정의
grid-auto-columns
-
암시적 열의 크기 정의
grid-auto-flow
-
배치하지 않은 아이템을 어떤 방식의 자동 배치 알고리즘으로 처리할지 정의
-
배치한 아이템은 grid-area를 사용한 아이템 의미
-
row: 각 행축을 따라 차례로 배치
-
column: 각 열 축을 따라 차례로 배치
-
rowdense(dense): 각 행 축을 따라 차례로 배치, 빈 영역 메움
-
column dense: 각 열 축을 따라 차례로 배치, 빈 영역 메움
grid-template-rows, grid-template-columns
-
명시적 행, 열의 크기 정의
-
동시에 라인의 이름도 정의
-
fr단위 사용 가능
-
repeat()함수 사용 가능
grid-row
-
grid-row-start와 grid-row-end의 단축 속성
-
각 속성을 /로 구분함
-
grid-row: <grid-row-start> / <grid-row-end>
-
span 숫자: span이 end위치에 있을때는 숫자만큼 확장을 하고, span이 start위치에 있을 때는 숫자만큼 뒤로가는 거임
-
grid-row: 2/ span3; -> 2~5
-
grid-row: span3/4; -> 1~4
grid-area
-
grid-area: <grid-row-start>/<grid-column-start>/<grid-row-end>/<grid-column-end>;
-
grid-area: 영역이름;
grid-template
-
grid-template: <grid-template-rows> / <grid-template-columns>;
-
grid-template: <grid-template-areas>;
grid
-
grid-template-xxx와 grid-auto-xxx의 단축 속성임
-
grid: <grid-template>;
-
grid: <grid-template-rows>/<grid-auto-flow> <grid-auto-columns>;
-
grid: <grid-auto-flow> <grid-auto-rows>/<grid-template-columns>;
align-content
-
그리드 콘텐츠를 수직 정렬함
-
그리드 콘텐츠의 세로너비가 그리드 컨테이너보다 작아야 함
-
normal==stretch
-
start: 시작점 정렬
-
center: 수직 가운데 정렬
-
end: 끝점 정렬
-
space-around: 각 행 위아래 여백 고르게 정렬
-
space-between: 첫 행은 시작점에, 끝 행은 끝점에 정렬되고 나머지 여백으로 고르게 정렬
-
space-evenly: 모든 여백을 고르게 정렬
-
stretch: 열축을 채우기 위해 수직으로 그리드 콘텐츠 늘림
justify-content
-
그리드 콘텐츠를 수평 정렬함
-
그리드 콘텐츠의 가로 너비가 그리드 컨테이너보다 작아야 함
-
그리드 콘텐츠를 수직 정렬함
-
그리드 콘텐츠의 세로너비가 그리드 컨테이너보다 작아야 함
-
normal==stretch
-
start: 시작점 정렬
-
center: 수평 가운데 정렬
-
end: 끝점 정렬
-
space-around: 각 열 좌우 여백 고르게 정렬
-
space-between: 첫 열은 시작점에, 끝 열은 끝점에 정렬되고 나머지 여백으로 고르게 정렬
-
space-evenly: 모든 여백을 고르게 정렬
-
stretch: 행축을 채우기 위해 수평으로 그리드 콘텐츠 늘림
align-items
-
그리드 아이템들을 수직 정렬함
-
그리드 아이템의 세로 너비가 자신이 속한 그리드 행의 크기보다 작아야 함
-
normal: stretch와 같음
-
start: 시작점 정렬
-
center: 가운데 정렬
-
end: 끝점 정렬
-
stretch: 열 축을 채우기 위해 그리드 아이템을 늘림
justify-items
-
그리드 아이템들을 수평 정렬함
-
그리드 아이템의 가로 너비가 자신이 속한 그리드 열의 크기보다 작아야 함
-
normal: stretch와 같음
-
start: 시작점 정렬
-
center: 가운데 정렬
-
end: 끝점 정렬
-
stretch: 행 축을 채우기 위해 그리드 아이템을 늘림
align-self
-
단일 그리드 아이템을 수직 정렬
-
그리드 아이템의 세로 너비가 자신이 속한 그리드 행의 크기보다 작아야 함
-
normal: stretch와 같음
-
start: 시작점 정렬
-
center: 가운데 정렬
-
end: 끝점 정렬
-
stretch: 열 축을 채우기 위해 그리드 아이템을 늘림
justify-self
-
그리드 아이템들을 수평 정렬함
-
그리드 아이템의 가로 너비가 자신이 속한 그리드 열의 크기보다 작아야 함
-
normal: stretch와 같음
-
start: 시작점 정렬
-
center: 가운데 정렬
-
end: 끝점 정렬
-
stretch: 행 축을 채우기 위해 그리드 아이템을 늘림
order
-
그리드 아이템이 자동 배치되는 순서를 변경함
-
숫자가 작을수록 앞서 배치됨(음수포함)
z-index
-
z-index 속성을 이용해 아이템이 쌓이는 순서 변경 가능함
Grid Functions
repeat
-
repeat() 함수는 행과 열의 크기 정의를 반복함
-
반복되는 횟수와 행 혹은 열의 크기 정의를 인수로 사용함
-
grid-template-rows와 grid-template-columns에서 사용
minmax
-
minmax() 함수는 행과 열의 최소 혹은 최대 크기를 정의함
-
첫 번째 인수는 최솟값이고 두 번째 인수는 최댓값
-
grid-template-rows, grid-template-columns, grid-auto rows, grid-auto-columns
fit-content
-
행.열의 크기를 그리드 아이템이 포함하는 내용크기에 맞춤
-
내용의 최대 크기를 인수로 사용함
-
minmax(auto, max-content)와 유사함
fr
-
fr(fractional unit)은 사용 가능한 공간에 대한 비율
min-content
-
그리드 아이템이 포함하는 내용의 최소 크기를 의미
max-content
-
그리드 아이템이 포함하는 내용의 최대 크기를 의미
auto-fill, auto-fit
-
행, 열의 개수를 그리드 컨테이너 및 행/열 크기에 맞게 자동으로 조정함
-
repeat()함수와 같이 사용 함(행, 열과 아이템 개수가 명확하지 않거나 명확할 필요가 없을 때)
-
auto-fill과 auto-fit은 간단한 차이점을 제외하면 동일하게 동작함
-
auto-fill은 빈공간을 비게 둠
-
auto-fit은 빈공간을 늘려서 채움
'웹개발(웹퍼블리셔) > 프론트엔드(HTML, CSS, JAVASCRIPT)' 카테고리의 다른 글
CSS Bootstrap 부트스트랩 (0) | 2020.03.06 |
---|---|
SaSS/SCSS 문법 (0) | 2020.03.04 |
CSS Flex/justify-contents/align-contents/Flex Items (0) | 2020.02.28 |
CSS animation/Multi Columns (0) | 2020.02.26 |
CSS position/background/transition/transform (0) | 2020.02.24 |