패스트캠퍼스 강의를 정리한 내용입니다.
"The RED : 견고한 UI 설계를 위한 마크업 가이드 by 정찬명"
Grid 속성 연습 게임 : https://cssgridgarden.com/#ko
→ CSS Grid 속성과 값을 이용해서 식물들을 물이 있는 곳으로 옮기는 게임
트랙의 수와 크기, 컨테이너에 적용
아이템의 배치와 병합, 아이템에 적용
*참고: https://yamoo9.gitbook.io/css-grid/css-grid-term
다중 컬럼, 플렉스, 그리드 아이템 사이의 간격
<style>
.container {
display: grid | inline-grid;
}
</style>
<'grid-row-start'> / <'grid-column-start'> / <'grid-row-end'> / <'grid-column-end'>
<style>
.container {
display: grid;
grid: auto / repeat(3, 1fr);
}
.item1 {
grid-area: 2 / 3;
/* <'grid-row-start'> / <'grid-column-start'> */
/* item이 두번째 row(행)의 세 번째 column에 배치됨 */
}
</style>
<integer> / span && <integer>
<style>
.container {
display: grid;
grid: auto / repeat(3, 1fr);
}
.item1 {
grid-area: 2 / 2 / span 3 / span 2;
/* <integer> / span && <integer> */
/*
두번째 행에, 두번째 컬럼에서 item 배치 시작
row 방향으로 세 개의 트랙 병합
column 방향으로 두 개의 트랙 병합
*/
}
</style>
<style>
.container {
display: grid;
grid: auto / repeat(3, auto);
place-content: end center;
/* <content-position> = center | start | end */
}
</style>
<style>
.container {
display: grid;
grid: auto / repeat(3, 1fr);
place-items: end center;
/* <self-position> = center | start | end */
}
</style>
<style>
.container {
display: grid;
grid: auto / repeat(3, 1fr);
}
.item1 {
place-self: end center;
/* <self-position> = center | start | end */
}
</style>
<style>
.container {
display: grid;
grid: '. . .'; /* 그리드 컨테이너와 3열의 익명 트랙 단축 문법 */
}
</style>
grid: <'grid-template-rows'> / <'grid-template-columns'>
<style>
.container {
display: grid;
grid: 80px 1fr / 120px 1fr;
/* fr은 fraction '부분'을 의미 */
}
</style>
repeat(<integer[1, ∞]>, <track-list>)
<style>
.container {
display: grid;
grid: auto / 40px 1fr 2fr 1fr 2fr;
==
grid: auto / 40px repeat(2, 1fr 2fr);
/* repeat(<integer[1, ∞]>, <track-list>) */
}
</style>
배치 방향 설정
auto-flow 값
슬래시(/)와 함께 교차 축 grid-template-rows/columns 값의 명시가 필수
<'grid-template-rows'> / [auto-flow && dense?] <'grid-template-columns'>?
<'grid-template-rows'> / [auto-flow && dense?] <'grid-template-columns'>?
<style>
.container {
display: grid;
/* item 높이가 1:2의 비율로 컬럼 방향(세로)으로 배치 */
grid: 1fr 2fr / auto-flow;
/* <'grid-template-rows'> / [auto-flow && dense?] <'grid-template-columns'>? */
/* item이 행의 방향(가로)으로 배치되고 item 너비는 1:2의 비율 */
grid: auto-flow / 1fr 2fr;
/* [auto-flow && dense?] <'grid-auto-rows'>? / <'grid-template-columns'> */
}
</style>
<style>
.container {
grid: auto-flow dense / repeat(3, 1fr);
}
</style>
repeat( [ auto-fill | auto-fit ], <fixed-size> )
'grid auto-fill/fit' Codepen 예제보기
CSS grid 레이아웃 문법과 예제 참고 사이트
https://naradesign.github.io/css-grid-layout.html