๐ ์ฐธ๊ณ ์๋ฃ
1๋ถ์ฝ๋ฉ Grid
Heropy CSS Grid ์๋ฒฝ ๊ฐ์ด๋
๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ๊ฒฉ์ ํํ์ ๋ ์ด์์์ ๋ง๋๋ 2์ฐจ์ ๋ ์ด์์ ๋ฐฉ์์ด๋ค.
๊ทธ๋ฆฌ๋ ์์ดํ
์ ๋ฐฐ์น์ ์ ๋ ฌ์ ๊ทธ๋ฆฌ๋ ์ปจํ
์ด๋ ๋ด๋ถ์ ํ๊ณผ ์ด์ ์ํธ์์ฉ์ ํตํด ๊ฒฐ์ ๋๋ค.
โ Grid ์์ฑ
โ Grid ์ง์
/* ๊ธฐ๋ณธ : ๋ธ๋ก ๋ ๋ฒจ ์์ */
display: grid;
/* ์ธ๋ผ์ธ ๋ ๋ฒจ ์์ */
/* inline-block`๊ณผ ๋น์ทํจ */
display: inline-flex;
โ
Grid ๊ตฌ์กฐ
Grid Container(๊ทธ๋ฆฌ๋ ์ปจํ
์ด๋)
โถ display: grid
๋ฅผ ์ ์ฉํ๋ Grid ์ ์ฒด ์์ญ
โถ Grid ์ปจํ
์ด๋ ์์ ์์๋ค์ด Grid ๊ท์น์ ์ํฅ์ ๋ฐ์ ์ ๋ ฌ
Grid Item(๊ทธ๋ฆฌ๋ ์์ดํ
)
โถ Grid ์ปจํ
์ด๋์ ์์ ์์๋ค
โถ Grid ๊ท์น์ ์ํด ๋ฐฐ์น
Grid Trakc(๊ทธ๋ฆฌ๋ ํธ๋)
โถ Grid ํ ๋๋ ์ด(Column)
Grid Cell(๊ทธ๋ฆฌ๋ ์
)
โถ Grid์ ํ ์นธ
Grid Line(๊ทธ๋ฆฌ๋ ๋ผ์ธ)
โถ Grid ์
์ ๊ตฌ๋ถํ๋ ์
Grid Number(๊ทธ๋ฆฌ๋ ๋๋ฒ)
โถ Grid์ ๋ผ์ธ์ ๋๋ฒ
Grid Gap(๊ทธ๋ฆฌ๋ ๊ฐญ)
โถ Grid ์
์ฌ์ด์ ๊ฐ๊ฒฉ
Grid Area(๊ทธ๋ฆฌ๋ ์์ญ)
โถ Grid ๋ผ์ธ์ผ๋ก ๋๋ฌ์ธ์ธ ์ฌ๊ฐํ ์์ญ์ผ๋ก, ๊ทธ๋ฆฌ๋ ์
์ ์งํฉ
โ๏ธ grid-template-rows, grid-template-columns
.container {
/* ์ด 3๊ฐ : 200px 200px 500px */
grid-template-columns: 200px 200px 500px;
/* ํ 3๊ฐ : 200px 200px 500px */
grid-template-rows: 200px 200px 500px;
}
๐ธ repeat ํจ์
.container {
grid-template-columns: repeat(5, 1fr);
/* grid-template-columns: 1fr 1fr 1fr 1fr 1fr */
}
๐ธ minmax ํจ์
.container {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, minmax(100px, auto));
}
๐ธ auto-fill๊ณผ auto-fit
.container {
grid-template-columns: repeat(auto-fill, minmax(20%, auto));
}
โ๏ธ row-gap, column-gap, gap
row-gap
: ํ๊ณผ ์ด ์ฌ์ด์ ๊ฐ๊ฒฉ ์ ์column-gap
: ์ด๊ณผ ์ด ์ฌ์ด์ ๊ฐ๊ฒฉ ์ ์gap
: ๊ฐ ํ๊ณผ ํ, ์ด๊ณผ ์ด ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ง์ .container {
row-gap: 10px;
/* row์ ๊ฐ๊ฒฉ์ 10px๋ก */
column-gap: 20px;
/* column์ ๊ฐ๊ฒฉ์ 20px๋ก */
gap: 20px;
/* row-gap: 20px; column-gap: 20px; */
gap: 10px 20px;
/* row-gap: 10px; column-gap: 20px; */
}
โ๏ธ grid-auto-columns, grid-auto-rows
โ๏ธ grid-column-start, grid-column-end, grid-column, grid-row-start, grid-row-end, grid-row
grid-column
๊ณผ grid-row
๋ start์ end๋ฅผ ํ๋ฒ์ ์ฐ๋ ์ถ์ํ.item:nth-child(1) {
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
/* ์ถ์ฝ ์์ฑ */
.item:nth-child(1) {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
โ๏ธ grid-template-areas
์ง๊ด์
grid-area
์์ฑ์ผ๋ก ์ด๋ฆ์ ์ง์ ํ์ฌ ๋งค์นญ.container {
grid-template-areas:
"header header header"
" a main b "
" . . . "
"footer footer footer";
}
.header { grid-area: header; }
.sidebar-a { grid-area: a; }
.main-content { grid-area: main; }
.sidebar-b { grid-area: b; }
.footer { grid-area: footer; }
/* ์ด๋ฆ ๊ฐ์ ๋ฐ์ดํ๊ฐ ์๋ ๊ฒ์ ์ฃผ์ํ์ธ์ */
โ๏ธ grid-auto-flow
โ๏ธ align-items
.container {
align-items: stretch;
/* align-items: start; */
/* align-items: center; */
/* align-items: end; */
}
โ๏ธ justify-items
.container {
justify-items: stretch;
/* justify-items: start; */
/* justify-items: center; */
/* justify-items: end; */
}
โ๏ธ place-items
align-items
์ justify-items
๋ฅผ ๊ฐ์ด ์ธ ์ ์๋ ๋จ์ถ ์์ฑalign-items
, justify-items
์ ์์๋ก ์์ฑ.container {
place-items: center start;
}
โ๏ธ align-content
.container {
align-content: stretch;
/* align-content: start; */
/* align-content: center; */
/* align-content: end; */
/* align-content: space-between; */
/* align-content: space-around; */
/* align-content: space-evenly; */
}
โ๏ธ justify-content
.container {
justify-content: stretch;
/* justify-content: start; */
/* justify-content: center; */
/* justify-content: end; */
/* justify-content: space-between; */
/* justify-content: space-around; */
/* justify-content: space-evenly; */
}
โ๏ธ place-content
align-content
์ justify-content
๋ฅผ ๊ฐ์ด ์ธ ์ ์๋ ๋จ์ถ ์์ฑalign-content
, justify-content
์ ์์๋ก ์์ฑ.container {
place-content: space-between center;
}
โ๏ธ align-self
.item {
align-self: stretch;
/* align-self: start; */
/* align-self: center; */
/* align-self: end; */
}
โ๏ธ justify-self
.item {
justify-self: stretch;
/* justify-self: start; */
/* justify-self: center; */
/* justify-self: end; */
}
โ๏ธ palce-self
align-self
์ justify-self
๋ฅผ ๊ฐ์ด ์ธ ์ ์๋ ๋จ์ถ ์์ฑalign-self
, justify-self
์ ์์๋ก ์์ฑ.item {
place-self: start center;
}
โ๏ธ order
.item:nth-child(1) { order: 3; } /* A */
.item:nth-child(2) { order: 1; } /* B */
.item:nth-child(3) { order: 2; } /* C */
โ๏ธ z-index
z-index
๋ก Z์ถ ์ ๋ ฌ์ ํ ์ ์์z-index
๋ ๊ฐ์.item:nth-child(5) {
z-index: 1;
transform: scale(2);
}
/* z-index๋ฅผ ์ค์ ์ํ๋ฉด 0์ด๋ฏ๋ก, 1๋ง ์ค์ ํด๋ ๋๋จธ์ง ์์ดํ
์ ๋ณด๋ค ์๋ก ์ฌ๋ผ์จ๋ค */
โ 2022.02.26
โ 2022.05.18