Grid
grid ๋ํ flex์ฒ๋ผ ๋ ์ด์์์ ๊ตฌ์กฐ๋ฅผ ์ค์ ํ ๋ ์ฌ์ฉ๋๋ css ํค์๋์ด๋ค.
์ด์ ์ flex๊ฐ ํ๋ฒ์ ํ๋์ ๋ฐฉํฅ, ์ฆ 1์ฐจ์์ ์ธ ๋ ์ด์์์ ์ค์ ํ์์ง๋ง grid๋ ํ๋ฒ์ ์์ง, ์ํ์ ๋ ์ด์์์ ์กฐ์ ํ ์ ์๋ 2์ฐจ์์ ์ธ ๋ ์ด์์์ ์ค์ ์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๊ตฌ์กฐ์ ์ธ ๋ ์ด์์์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด flex๋ณด๋ค๋ grid์ ์ฌ์ฉ์ด ๋ ๋์ ์ ํ์ด๋ค.
<div className='grid-container'>
</div>
.grid-container {
display: grid;
grid-template-rows: 1fr 1fr 1fr;
grid-template-columns: 50px 50px 50px;
// ์์ ๊ฐ์ด ๋ฐ๋ณต๋๋ css๋ฅผ repeat๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ํํ ์ ์๋ค.
// grid-template-columns: repeat(3, 50px);
}
flex์ ๋ง์ฐฌ๊ฐ์ง๋ก grid๋ฅผ ์ค์ ํ ์์์ ์์๋ค์ grid-item์ผ๋ก ์ค์ ๋๋ฉฐ, ๊ฐ ์์๋ค์ ํฌ๊ธฐ๋ฅผ grid-template-rows/columns
๋ก ์กฐ์ ์ด ๊ฐ๋ฅํ๋ค. ๊ธฐ์กด์ ์ฌ์ฉํ๋ px, em, ๋๋ ๋ฐฑ๋ถ์จ๋ก๋ ํํ์ด ๊ฐ๋ฅํ์ง๋ง, grid container๋ด์์์ ํฌ๊ธฐ๋ฅผ ์ ์ํ๋ fr(fraction)
์ด๋ผ๋ ๋จ์๋ก๋ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
์กฐ๊ธ ํน์ดํ์ ์ผ๋ก, css๋ด์์ grid container์ ๊ตฌ์กฐ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
<section>
<h1>Grid</h1>
<section className='grid-container'>
<header>Header</header>
<aside>Sidebar</aside>
<main>Main content</main>
<footer>Footer</footer>
</section>
</section>
.grid-container {
height: 300px;
display: grid;
grid-template-areas:
'header header header'
'aside main .'
'footer footer footer';
}
header {
background-color: green;
grid-area: header;
}
aside {
background-color: red;
grid-area: aside;
}
footer {
background-color: yellow;
grid-area: footer;
}
main {
background-color: pink;
grid-area: main;
}
์ ์์์ฒ๋ผ grid-template-areas
๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ๋ฅผ ์ ์ํ ์ ์๋๋ฐ, ๋ฌธ์์ด์ ํ ํ์ด grid-conatiner์ ํ์, ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๊ฐ๊ฐ์ ๋ฌธ์์ด์ด ์ด์ ๋ํ๋ธ๋ค. ์์ ์์ฑ๋ ๋ฌธ์์ด์ ์ด๋ค ํ๊ทธ๋ค์ด grid-container๋ฅผ ๊ตฌ์ฑํ๋์ง ์๋ ค์ฃผ๊ณ , ํด๋น ํ๊ทธ์ css ์์ฑ์ grid-area
๋ฅผ ํตํ์ฌ ์ฐ๊ฒฐ์์ผ์ฃผ๋ฉด ๋๋ค. ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.

Last updated