1<!DOCTYPE html>
2<html lang="ko">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Grid ๋ ์ด์์ ์์ </title>
7 <link rel="stylesheet" href="style.css">
8</head>
9<body>
10 <h1>CSS Grid ๋ ์ด์์ ์์ </h1>
11
12 <!-- 1. ๊ธฐ๋ณธ Grid ์ปจํ
์ด๋ -->
13 <section class="section">
14 <h2>1. ๊ธฐ๋ณธ Grid ์ปจํ
์ด๋</h2>
15 <p><code>display: grid</code>์ <code>grid-template-columns</code>์ผ๋ก ์ด์ ์ ์ํฉ๋๋ค.</p>
16
17 <div class="grid-container basic-grid">
18 <div class="grid-item">1</div>
19 <div class="grid-item">2</div>
20 <div class="grid-item">3</div>
21 <div class="grid-item">4</div>
22 <div class="grid-item">5</div>
23 <div class="grid-item">6</div>
24 </div>
25 </section>
26
27 <!-- 2. grid-template-columns -->
28 <section class="section">
29 <h2>2. grid-template-columns</h2>
30
31 <h3>๊ณ ์ ํฌ๊ธฐ: 100px 200px 100px</h3>
32 <div class="grid-container columns-fixed">
33 <div class="grid-item">1</div>
34 <div class="grid-item">2</div>
35 <div class="grid-item">3</div>
36 </div>
37
38 <h3>๋น์จ: 1fr 2fr 1fr</h3>
39 <div class="grid-container columns-fr">
40 <div class="grid-item">1fr</div>
41 <div class="grid-item">2fr</div>
42 <div class="grid-item">1fr</div>
43 </div>
44
45 <h3>repeat(4, 1fr)</h3>
46 <div class="grid-container columns-repeat">
47 <div class="grid-item">1</div>
48 <div class="grid-item">2</div>
49 <div class="grid-item">3</div>
50 <div class="grid-item">4</div>
51 </div>
52
53 <h3>minmax(100px, 1fr)</h3>
54 <div class="grid-container columns-minmax">
55 <div class="grid-item">1</div>
56 <div class="grid-item">2</div>
57 <div class="grid-item">3</div>
58 </div>
59
60 <h3>auto-fill vs auto-fit</h3>
61 <p>์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด๋ณด์ธ์.</p>
62 <p><strong>auto-fill:</strong> ๋น ๊ณต๊ฐ ์ ์ง</p>
63 <div class="grid-container columns-auto-fill">
64 <div class="grid-item">1</div>
65 <div class="grid-item">2</div>
66 <div class="grid-item">3</div>
67 </div>
68 <p><strong>auto-fit:</strong> ๋น ๊ณต๊ฐ ์ฑ์</p>
69 <div class="grid-container columns-auto-fit">
70 <div class="grid-item">1</div>
71 <div class="grid-item">2</div>
72 <div class="grid-item">3</div>
73 </div>
74 </section>
75
76 <!-- 3. grid-template-rows -->
77 <section class="section">
78 <h2>3. grid-template-rows</h2>
79
80 <div class="grid-container rows-example">
81 <div class="grid-item">100px</div>
82 <div class="grid-item">200px</div>
83 <div class="grid-item">100px</div>
84 </div>
85 </section>
86
87 <!-- 4. gap -->
88 <section class="section">
89 <h2>4. gap (๊ฐ๊ฒฉ)</h2>
90
91 <h3>gap: 20px</h3>
92 <div class="grid-container gap-example">
93 <div class="grid-item">1</div>
94 <div class="grid-item">2</div>
95 <div class="grid-item">3</div>
96 <div class="grid-item">4</div>
97 </div>
98
99 <h3>row-gap: 30px, column-gap: 10px</h3>
100 <div class="grid-container gap-separate">
101 <div class="grid-item">1</div>
102 <div class="grid-item">2</div>
103 <div class="grid-item">3</div>
104 <div class="grid-item">4</div>
105 </div>
106 </section>
107
108 <!-- 5. ์์ดํ
๋ฐฐ์น: grid-column, grid-row -->
109 <section class="section">
110 <h2>5. ์์ดํ
๋ฐฐ์น: grid-column, grid-row</h2>
111
112 <div class="grid-container placement-example">
113 <div class="grid-item span-col-2">col: 1 / 3 (2์นธ)</div>
114 <div class="grid-item">3</div>
115 <div class="grid-item span-row-2">row: 2 / 4 (2์นธ)</div>
116 <div class="grid-item">5</div>
117 <div class="grid-item">6</div>
118 <div class="grid-item span-both">2x2</div>
119 </div>
120 </section>
121
122 <!-- 6. grid-template-areas -->
123 <section class="section">
124 <h2>6. grid-template-areas</h2>
125 <p>์์ญ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ง๊ด์ ์ผ๋ก ๋ ์ด์์์ ์ ์ํฉ๋๋ค.</p>
126
127 <div class="grid-container areas-example">
128 <header class="grid-item area-header">Header</header>
129 <nav class="grid-item area-sidebar">Sidebar</nav>
130 <main class="grid-item area-main">Main Content</main>
131 <footer class="grid-item area-footer">Footer</footer>
132 </div>
133 </section>
134
135 <!-- 7. justify-items, align-items -->
136 <section class="section">
137 <h2>7. justify-items, align-items</h2>
138
139 <h3>justify-items: center, align-items: center</h3>
140 <div class="grid-container items-center">
141 <div class="grid-item small">1</div>
142 <div class="grid-item small">2</div>
143 <div class="grid-item small">3</div>
144 <div class="grid-item small">4</div>
145 </div>
146
147 <h3>justify-items: stretch (๊ธฐ๋ณธ๊ฐ)</h3>
148 <div class="grid-container items-stretch">
149 <div class="grid-item">1</div>
150 <div class="grid-item">2</div>
151 <div class="grid-item">3</div>
152 <div class="grid-item">4</div>
153 </div>
154 </section>
155
156 <!-- 8. justify-content, align-content -->
157 <section class="section">
158 <h2>8. justify-content, align-content</h2>
159 <p>Grid ์ปจํ
์ด๋ ๋ด์์ ์ ์ฒด ๊ทธ๋ฆฌ๋์ ์์น๋ฅผ ์กฐ์ ํฉ๋๋ค.</p>
160
161 <div class="grid-container content-center">
162 <div class="grid-item small">1</div>
163 <div class="grid-item small">2</div>
164 <div class="grid-item small">3</div>
165 <div class="grid-item small">4</div>
166 </div>
167 </section>
168
169 <!-- 9. ๊ฐ๋ณ ์์ดํ
์ ๋ ฌ -->
170 <section class="section">
171 <h2>9. justify-self, align-self (๊ฐ๋ณ ์ ๋ ฌ)</h2>
172
173 <div class="grid-container self-example">
174 <div class="grid-item" style="justify-self: start;">start</div>
175 <div class="grid-item" style="justify-self: center;">center</div>
176 <div class="grid-item" style="justify-self: end;">end</div>
177 <div class="grid-item" style="align-self: start;">top</div>
178 <div class="grid-item" style="align-self: center;">middle</div>
179 <div class="grid-item" style="align-self: end;">bottom</div>
180 </div>
181 </section>
182
183 <!-- 10. ์ค์ ์์ : ๊ฐค๋ฌ๋ฆฌ -->
184 <section class="section">
185 <h2>10. ์ค์ ์์ : ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ</h2>
186
187 <div class="gallery">
188 <div class="gallery-item large">1 (large)</div>
189 <div class="gallery-item">2</div>
190 <div class="gallery-item">3</div>
191 <div class="gallery-item tall">4 (tall)</div>
192 <div class="gallery-item">5</div>
193 <div class="gallery-item wide">6 (wide)</div>
194 <div class="gallery-item">7</div>
195 <div class="gallery-item">8</div>
196 </div>
197 </section>
198
199 <!-- 11. ์ค์ ์์ : ๋์๋ณด๋ -->
200 <section class="section">
201 <h2>11. ์ค์ ์์ : ๋์๋ณด๋ ๋ ์ด์์</h2>
202
203 <div class="dashboard">
204 <header class="dash-header">Header</header>
205 <nav class="dash-nav">Navigation</nav>
206 <main class="dash-main">
207 <div class="widget">Widget 1</div>
208 <div class="widget">Widget 2</div>
209 <div class="widget">Widget 3</div>
210 <div class="widget wide-widget">Widget 4 (wide)</div>
211 </main>
212 <aside class="dash-aside">Sidebar</aside>
213 <footer class="dash-footer">Footer</footer>
214 </div>
215 </section>
216
217 <!-- 12. ๋ฐ์ํ Grid -->
218 <section class="section">
219 <h2>12. ๋ฐ์ํ Grid</h2>
220 <p>์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด ์ด ์๊ฐ ์๋์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.</p>
221
222 <div class="grid-container responsive-grid">
223 <div class="grid-item">1</div>
224 <div class="grid-item">2</div>
225 <div class="grid-item">3</div>
226 <div class="grid-item">4</div>
227 <div class="grid-item">5</div>
228 <div class="grid-item">6</div>
229 <div class="grid-item">7</div>
230 <div class="grid-item">8</div>
231 </div>
232 </section>
233
234 <footer>
235 <p>© 2024 CSS Grid ๋ ์ด์์ ์์ </p>
236 <p><a href="flexbox.html">โ Flexbox ๋ ์ด์์ ์์ ๋ณด๊ธฐ</a></p>
237 </footer>
238</body>
239</html>