1.1 Grid Layout์ ๊ธฐ๋ณธ ์์น
CSS Grid Layout์ ๋ณต์กํ๊ณ ์ ์๋ ฅ ์๋ ๋ ์ด์์์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ผ. ์ด ๋๊ตฌ๋ ๊ฐ๋ฐ์์๊ฒ ์์ ๋ฐฐ์น๋ฅผ ์ํ 2์ฐจ์ ๊ทธ๋ฆฌ๋ ์์คํ ์ ์ ๊ณตํด์, ๊ฐ๋จํ ๋ ์ด์์์ ๋ฌผ๋ก ๋ณต์กํ ๋ ์ด์์๋ ์ฝ๊ฒ ๋ง๋ค ์ ์์ด. CSS Grid์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๋ฌธ๋ฒ์ ์ดํด๋ณด์, ํน์ ์์ฑ์ ๊น์ด ๋ค์ด๊ฐ์ง๋ ์์ ๊ฑฐ์ผ.
CSS Grid์ ๊ธฐ๋ณธ ๊ฐ๋
-
Grid ์ปจํ
์ด๋์ Grid ์์๋ค:
-
Grid ์ปจํ
์ด๋๋
display: grid
๋ฅผ ํฌํจํ๋ ์์์ผ. ์ด ์์๋ ๊ทธ๋ฆฌ๋ ์ปจํ ์ด๋๊ฐ ๋๊ณ , ๊ทธ ์์ ์๋ ๋ชจ๋ ์์ ์์๋ค์ Grid ์์๊ฐ ๋ผ - Grid ์์๋ Grid ์ปจํ ์ด๋์ ์ง๊ณ ์์ ์์๋ค์ด์ผ, ๊ทธ๋ฆฌ๋ ์์ ๋ฐฐ์น๋์ด ์์ด
-
Grid ์ปจํ
์ด๋๋
-
๊ทธ๋ฆฌ๋ ์ถ:
- ์ฃผ์ถ (inline axis)์ ๋ธ๋ก ์ถ (block axis): Grid๋ ์์ ๋ฐฐ์น๋ฅผ ์ํ ๋ ๊ฐ์ ์ถ์ ์ง์ํด โ ์ฃผ์ถ๊ณผ ๋ธ๋ก ์ถ. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ์ถ์ ์ํ์ผ๋ก ๊ฐ๊ณ , ๋ธ๋ก ์ถ์ ์์ง์ผ๋ก ๊ฐ
-
๊ทธ๋ฆฌ๋ ์
(Grid Cells):
- ๊ทธ๋ฆฌ๋ ์ ์ ํ๊ณผ ์ด์ด ๊ต์ฐจํ๋ ๊ณณ์์ ํ์ฑ๋๋ ๊ธฐ๋ณธ ๋ธ๋ก๋ค์ด์ผ. ๊ฐ Grid ์์๋ ํ๋ ์ด์์ ์ ์ ์ฐจ์งํด
-
๊ทธ๋ฆฌ๋ ๋ผ์ธ (Grid Lines):
- ๊ทธ๋ฆฌ๋ ๋ผ์ธ์ ํ๊ณผ ์ด์ ๊ตฌ๋ถํ๋ ์ํ ๋ฐ ์์ง์ ์ด์ผ. ์์๋ฅผ ๊ทธ๋ฆฌ๋์ ์๋์ ์ผ๋ก ๋ฐฐ์นํ๋ ๋ฐ ์ฌ์ฉ๋ผ
-
๊ทธ๋ฆฌ๋ ์์ญ (Grid Areas):
- ๊ทธ๋ฆฌ๋ ์์ญ์ ์ฌ๋ฌ ์ ์ ๊ฒฐํฉํ์ฌ ์์ฑ๋ ์ด๋ฆ์ด ์๋ ๊ทธ๋ฆฌ๋ ์์ญ์ด์ผ. ์ ์ ๊ทธ๋ฃนํํ๊ณ ํน์ ์์ญ์ ์์๋ฅผ ๋ฐฐ์นํ ์ ์๊ฒ ํด์ค
1.2 ๋ฌธ๋ฒ ์์๋ค
CSS Grid์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์์๋ค
1. Grid ์ปจํ ์ด๋ ์์ฑ:
.container {
display: grid; /* ๋๋ display: inline-grid */
}
2. ๊ทธ๋ฆฌ๋ ๊ตฌ์กฐ ์ ์:
CSS
.container {
display: grid;
grid-template-columns: 100px 200px 100px; /* ์๋ก ๋ค๋ฅธ ๋๋น์ ์ธ ์ด์ ์ ์ */
grid-template-rows: 50px 100px; /* ์๋ก ๋ค๋ฅธ ๋์ด์ ๋ ํ์ ์ ์ */
}
3. grid-area๋ฅผ ํตํ ์ ๋ณํฉ:
CSS
.item1 {
grid-area: 1 / 1 / 2 / 4; /* ์์๊ฐ ์ฒซ ๋ฒ์งธ ํ๊ณผ ์ฒ์ ์ธ ์ด์ ์ฐจ์ง */
}
4. ์์ ์๋ ๋ฐฐ์น:
CSS
.container {
display: grid;
grid-auto-rows: minmax(100px, auto); /* ํ์ ์ต์ ๋์ด๋ฅผ ์ง์ */
}
1.3 ์์ ๋ค
CSS Grid๋ฅผ ์ด์ฉํ ๊ฐ๋จํ ๋ ์ด์์:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Grid ์์ </title>
<style>
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: 100px 200px;
gap: 10px;
}
.item {
background-color: lightblue;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 6</div>
</div>
</body>
</html>
์ค๋ช :
- ์ปจํ ์ด๋ .container๋ ์ฒซ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ ์ด์ด ๊ฐ์ฉ ๊ณต๊ฐ์ ๋์ผํ ๋น์จ์ ์ฐจ์งํ๊ณ ๋ ๋ฒ์งธ ์ด์ด ๋ ๋ฐฐ๋ฅผ ์ฐจ์งํ๋๋ก ์ค์ ๋ผ
- ๊ณ ์ ๋ ๋์ด์ ๋ ๊ฐ์ ํ์ด ์ง์ ๋ผ
- ์์ฑ gap์ ๊ทธ๋ฆฌ๋ ์ ๊ฐ์ ๊ฐ๊ฒฉ์ ์ง์ ํด
GO TO FULL VERSION