๐ grid
โ๏ธ Flex์ Grid์ ์ฐจ์ด
- Flex๋ ํ ๋ฐฉํฅ ๋ ์ด์์ ์์คํ ์ด๊ณ (1์ฐจ์)
- Grid๋ ๋ ๋ฐฉํฅ(๊ฐ๋ก-์ธ๋ก) ๋ ์ด์์ ์์คํ (2์ฐจ์)
์ฌ์ฉ๋ฒ
flex ์ฒ๋ผ display : grid๋ก ์์
1
2
3
4
5
6
7
8
9
10
11
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
<div class="item">D</div>
<div class="item">E</div>
<div class="item">F</div>
<div class="item">G</div>
<div class="item">H</div>
<div class="item">I</div>
</div>
1
2
3
4
.container {
display: grid;
//์ด๊ฒ๋ง์ผ๋ก๋ flex์ ๋ค๋ฅด๊ฒ ์๋ฌด๋ณํ๊ฐ ์์, ์์ฑ์ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค.
}
์ฉ์ด
- ๊ทธ๋ฆฌ๋ ์ปจํ ์ด๋ (Grid Container) display: grid๋ฅผ ์ ์ฉํ๋ Grid์ ์ ์ฒด ์์ญ, Grid ์ปจํ ์ด๋ ์์ ์์๋ค์ด Grid ๊ท์น์ ์ํฅ์ ๋ฐ์ ์ ๋ ฌ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ ์ฝ๋ <div class=โcontainerโ></div>๊ฐ Grid ์ปจํ ์ด๋์
- ๊ทธ๋ฆฌ๋ ์์ดํ (Grid Item) Grid ์ปจํ ์ด๋์ ์์ ์์, ๋ฐ๋ก ์ด ์์ดํ ๋ค์ด Grid ๊ท์น์ ์ํด ๋ฐฐ์น๋จ. ์ ์ฝ๋์์ <div class=โitemโ></div>๋ค์ด Grid ์์ดํ ์ด๋ค.
- ๊ทธ๋ฆฌ๋ ํธ๋ (Grid Track) Grid์ ํ(Row) ๋๋ ์ด(Column)
- ๊ทธ๋ฆฌ๋ ์ (Grid Cell) Grid์ ํ ์นธ, <div>๊ฐ์ ์ค์ html ์์๋ ๊ทธ๋ฆฌ๋ ์์ดํ ์ด๊ณ , ์ด๋ฐ Grid ์์ดํ ํ๋๊ฐ ๋ค์ด๊ฐ๋ โ๊ฐ์์ ์นธ(ํ)โ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- ๊ทธ๋ฆฌ๋ ๋ผ์ธ(Grid Line) Grid ์ ์ ๊ตฌ๋ถํ๋ ์
- ๊ทธ๋ฆฌ๋ ๋ฒํธ(Grid Number) Grid ๋ผ์ธ์ ๊ฐ ๋ฒํธ
- ๊ทธ๋ฆฌ๋ ๊ฐญ(Grid Gap) Grid ์ ์ฌ์ด์ ๊ฐ๊ฒฉ
๊ทธ๋ฆฌ๋ ์์ญ(Grid Area) Grid ๋ผ์ธ์ผ๋ก ๋๋ฌ์ธ์ธ ์ฌ๊ฐํ ์์ญ์ผ๋ก, ๊ทธ๋ฆฌ๋ ์ ์ ์งํฉ
๊ทธ๋ฆฌ๋ ํํ ์ ์
- grid-template-columns
- grid-template-rows
1
2
3
4
5
6
7
8
9
10
11
12
13
.container {
grid-template-columns: 200px 200px 500px;
/* grid-template-columns: 1fr 1fr 1fr */
/* grid-template-columns: repeat(3, 1fr) */
/* grid-template-columns: 200px 1fr */
/* grid-template-columns: 100px 200px auto */
grid-template-rows: 200px 200px 500px;
/* grid-template-rows: 1fr 1fr 1fr */
/* grid-template-rows: repeat(3, 1fr) */
/* grid-template-rows: 200px 1fr */
/* grid-template-rows: 100px 200px auto */
}
fr : ๋น์จ,
ex) 1fr 1fr 1fr : 1:1:1 ๋น์จ๋ก ๋๋๋ค
repeat(3,1fr) = 1fr 1fr 1fr