-
๋ฐ์ํ
CSS ๋ ์ด์์์ ๊ตฌ์ฑํ ๋ Grid์ Flexbox๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ๋๊ตฌ์ ๋๋ค. ํ์ง๋ง ๊ฐ๊ฐ์ ํน์ง๊ณผ ํ์ฉ๋ฒ์ ์ดํดํ์ง ๋ชปํ๋ฉด ์ธ์ ์ด๋ค ๊ฒ์ ์จ์ผ ํ ์ง ํท๊ฐ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก CSS Grid์ Flexbox์ ์ฐจ์ด์ ์ ๋น๊ตํ๊ณ , ๊ฐ๊ฐ์ ์ธ์ ์ฌ์ฉํด์ผ ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ๋
Grid
Flex
CSS Grid๋ 2์ฐจ์(ํ๊ณผ ์ด) ๋ ์ด์์ ์์คํ ์ ๋๋ค.
๋ถ๋ชจ ์์๊ฐ ์ ์ฒด ๋ ์ด์์์ ์ค์ ํ๋ฉฐ, ์์ ์์๋ค์ ๊ฒฉ์(grid) ๊ตฌ์กฐ์ ๋ฐฐ์นํ ์ ์์ต๋๋ค.Flexbox๋ 1์ฐจ์(๊ฐ๋ก ๋๋ ์ธ๋ก) ๋ ์ด์์ ์์คํ ์ ๋๋ค.
์์๋ฅผ ํ(Row) ๋๋ ์ด(Column) ๋ฐฉํฅ์ผ๋ก ๋ฐฐ์นํ๊ณ ์ ๋ ฌํ ๋ ์ ์ฉํฉ๋๋ค.- ํ(Row)๊ณผ ์ด(Column) ๋ชจ๋๋ฅผ ์กฐ์ ๊ฐ๋ฅ
- ์ ๋ ฌ๊ณผ ๋ฐฐ์น๊ฐ ์ง๊ด์
- ๋ณต์กํ ๋ ์ด์์์ ์ ๋ฆฌ
- ํ ๋ฐฉํฅ(๊ฐ๋ก ๋๋ ์ธ๋ก) ์ ๋ ฌ์ด ์ฌ์
- ์ ์ฐํ ํฌ๊ธฐ ์กฐ์ ์ด ๊ฐ๋ฅ
- ์์ ๊ฐ ๊ฐ๊ฒฉ์ ์กฐ์ ํ๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ ฅ
์ธ์ CSS Grid๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น?
2์ฐจ์ ๋ ์ด์์์ ๋ง๋ค ๋
- ์: ์นด๋ ๋ ์ด์์, ๋์๋ณด๋, ๊ฐค๋ฌ๋ฆฌ, ์ ์ฒด ํ์ด์ง ๋ ์ด์์
ํ๊ณผ ์ด์ ๋์์ ์กฐ์ ํด์ผ ํ ๋
- ์: ์ ํด์ง ํ ์์์ ์ฌ๋ฌ ๊ฐ์ ์์๋ฅผ ์ ๋ ฌํ๋ ๊ฒฝ์ฐ
๋น์จ์ ๋ง์ถ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ์: grid-template-columns: 1fr 2fr 1fr;์ ์ฌ์ฉํ์ฌ ํน์ ์ด์ ํฌ๊ธฐ๋ฅผ ์ ๋์ ์ผ๋ก ์ค์ ํ ๋
๐ ์ถ์ฒ ์ฌ์ฉ ์์ : ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ์กฐ์ ๋๋ ๋ฐ์ํ ๊ฐค๋ฌ๋ฆฌ
.gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
์ธ์ Flexbox๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น?
1์ฐจ์ ์ ๋ ฌ(๊ฐ๋ก ๋๋ ์ธ๋ก)๋ง ํ์ํ ๋
- ์: ๋ด๋น๊ฒ์ด์ ๋ฐ, ๋ฒํผ ๊ทธ๋ฃน, ์นด๋ ๋ฆฌ์คํธ
์์ ๊ฐ์ ์ ๋ ฌ์ ์ ์ฐํ๊ฒ ์กฐ์ ํด์ผ ํ ๋
- ์: justify-content: space-between;์ ์ฌ์ฉํด ์์ ๊ฐ ๊ฐ๊ฒฉ์ ์๋ ์กฐ์
๋ ์ด์์์ด ๋์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋
- ์: ํน์ ์์ดํ ์ด ๋์ด๋๊ฑฐ๋ ์ค์ด๋๋ ๊ฒฝ์ฐ
๐ ์ถ์ฒ ์ฌ์ฉ ์์ : ๋ด๋น๊ฒ์ด์ ๋ฐ (๋ด๋น๊ฒ์ด์ ์์ดํ ์ด ์๋์ผ๋ก ์์ชฝ ๋์ผ๋ก ์ ๋ ฌ)
.nav { display: flex; justify-content: space-between; align-items: center; padding: 10px; }
๊ฒฐ๋ก : ์ธ์ ์ด๋ค ๊ฑธ ์จ์ผ ํ ๊น?
โ ์น์ฌ์ดํธ์ ๊ธฐ๋ณธ ๋ ์ด์์์ ๋ง๋ค ๋? → CSS Grid
โ ๋ค๋น๊ฒ์ด์ ๋ฐ, ๋ฒํผ ๊ทธ๋ฃน์ฒ๋ผ ๋จ์ํ ๋ฐฐ์น๋ฅผ ํ ๋? → Flexbox
โ ๋ณต์กํ ๊ทธ๋ฆฌ๋ ์์คํ ์ด ํ์ํ ๋? → CSS Grid
โ ์์ ๊ฐ ๊ฐ๊ฒฉ๊ณผ ์ ๋ ฌ์ ๋ค๋ฃฐ ๋? → Flexbox๐ ์ค๋ฌด์์๋ CSS Grid์ Flexbox๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค!
์๋ฅผ ๋ค์ด ์ ์ฒด ํ์ด์ง ๋ ์ด์์์ Grid๋ก ๋ง๋ค๊ณ , ๋ด๋ถ์ ์์ ์์ ์ ๋ ฌ์ Flexbox๋ฅผ ์ฌ์ฉํ๋ ์์ผ๋ก ์กฐํฉํ ์ ์์ต๋๋ค.๐ฏ ํต์ฌ ์์ฝ
- Grid๋ **2์ฐจ์ ๋ ์ด์์(ํ+์ด)**์ ์ ํฉ
- Flexbox๋ **1์ฐจ์ ์ ๋ ฌ(๊ฐ๋ก ๋๋ ์ธ๋ก)**์ ์ ํฉ
- ๋ ๋ค ์ ์ ํ ์กฐํฉํด์ ์ฌ์ฉํ๋ฉด ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์!
๋ฐ์ํ'Coding' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] accent-color ์์ฑ์ผ๋ก ํผ ์์ ์คํ์ผ๋งํ๊ธฐ (0) 2025.03.06 [CSS] filter: invert() ์ฌ์ฉ๋ฒ (0) 2025.03.05 [CSS] linear-gradient() ์ฌ์ฉํ๊ธฐ (0) 2024.08.12 [GSAP] scrollTo() ํจ์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (0) 2024.06.02 [GSAP] ScrollTrigger ์์ ์์ ๋ฆฌํด ๊ฐ ์ป๋ ๋ฐฉ๋ฒ (0) 2024.03.05