๐ฉ๐ป๐ป
[CSS] ๊ทธ๋ฆฌ๋ ๋ ์ด์์(Grid Layout) ๋ณธ๋ฌธ
caniuse๋ผ๋ HTML, CSS, Javascript์ ๊ธฐ์ ๋ค์ ์น๋ธ๋ผ์ฐ์ ๋ค์ด ์ผ๋ง๋ ์ฑํํ๊ณ ์๋์ง์ ๋ํ ํต๊ณ๋ฅผ ๋ณผ ์ ์๋ ์ฌ์ดํธ์ ๋ฐ๋ฅด๋ฉด, CSS์ Grid Layout์ ๊ฑฐ์ ๋ชจ๋ ์น๋ธ๋ผ์ฐ์ ์ ์ ์ฉ์ํฌ ์ ์๊ณ , ์ ์ธ๊ณ 95.27%์ ์ฌ์ฉ์๋ค์ด ์ด ๊ธฐ์ ์ ์ ์ฉํ ์ฌ์ดํธ๋ฅผ ์ด์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด์ฒ๋ผ Grid Layout์ ์นํ์ด์ง์ ๋ ์ด์์์ ๊ตฌํํ๊ธฐ ์ํ ์์ฃผ ์ ์ฉํ ๊ธฐ์ ์ ๋๋ค.
Can I use... Support tables for HTML5, CSS3, etc
About "Can I use" provides up-to-date browser support tables for support of front-end web technologies on desktop and mobile web browsers. The site was built and is maintained by Alexis Deveria, with occasional updates provided by the web development commu
caniuse.com
1. ๊ทธ๋ฆฌ๋ ๋ ์ด์์ ์ ์ฉํ๊ธฐ
๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ์ ์ฉํ๊ธฐ ์ํด์๋ ๋จผ์ div ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ์์ ์์(item)๋ค์ ๋ถ๋ชจ ์์(wrapper ๋๋ container)๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํฉ๋๋ค.
<div class="wrapper">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
1, 2, 3, 4, 5, 6 ์ด๋ผ๋ ์์๋ค์ ๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ์ ์ฉํ๊ธฐ ์ํด ๊ฐ๊ฐ์ ์์๋ค์ div ํ๊ทธ๋ก ๊ตฌ๋ถํด์ฃผ๊ณ , ๋ชจ๋ ์์๋ฅผ ํ๋์ div ํ๊ทธ๋ก ๊ฐ์ธ์ค ํ, class๋ฅผ ์ค์ ํด์ค๋๋ค.
์ด ๋ถ๋ชจ class์ display๋ฅผ grid๋ก ์ค์ ํ๋ฉด ๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ์ ์ฉํ ์ ์์ต๋๋ค.
<style>
.wrapper {
display: grid;
}
</style>
display: grid ๋ block ํน์ฑ, display: inline-grid๋ inline ํน์ฑ์ ๊ฐ์ง๋๋ค.
2. ํ, ์ด ์ค์ ํ๊ธฐ
<style>
.wrapper {
display: grid;
grid-template-columns: 50px 100px 50px;
grid-template-rows: 100px 50px;
}
</style>
grid-template-columns์ grid-template-rows์ ๊ฐ๊ฐ์ ํ๊ณผ ์ด์ ํฌ๊ธฐ๋ฅผ ๋์ดํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํํ๋ฉ๋๋ค.
1 |
2 |
3 |
4 |
5 |
6 |
<style>
.wrapper {
display:grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: 2fr 1fr;
}
</style>
fr์ ์ฌ์ฉํ๋ฉด ์ ์ฒด์ ๋ํ ๋น์จ๋ก๋ ํํํ ์ ์์ต๋๋ค.
๋ํ, grid-template-columns: 100px 100px 100px 100px๊ณผ ๊ฐ์ด ๊ฐ์ ์ซ์๋ ํจํด์ด ๋ฐ๋ณต๋๋ค๋ฉด repeatํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ํํํ ์ ์์ต๋๋ค.
์ ์์ ๋ 2๊ฐ์ ํ๊ณผ 3๊ฐ์ ์ด์ ๋ํ ํฌ๊ธฐ๋ง ์ ์๋์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ์์ดํ ์ ์ถ๊ฐํ๋ฉด ์์ดํ ์ ํฌ๊ธฐ์ ๋ง์ถฐ ๋ค์ ํ์ ํ์๋ฉ๋๋ค. ์ด๋ ๊ฒ ๋ช ์์ ํ ์ธ๋ถ์ ์์์ ํ์ ํฌ๊ธฐ๋ฅผ ์ํ๋ ๊ฐ์ผ๋ก ์ ์ํ๊ธฐ ์ํด์๋ grid-auto๋ฅผ ์ฌ์ฉํฉ๋๋ค.
<style>
.wrapper {
display: grid;
grid-template-columns: 50px 100px 50px;
grid-template-rows: 100px 50px;
grid-template-columns: 100px;
grid-quto-rows: 100px;
}
</style>
3. ์์ดํ ๋ฐฐ์นํ๊ธฐ
์์ดํ ์ ์์๋ก ๋ฐฐ์นํ๊ธฐ ์ํด์๋ ๋จผ์ ์์ ์์์ class๋ฅผ ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
<div class="wrapper">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
</div>
์ผ์ชฝ ์ ๋ถํฐ ์ซ์ 1, 2, 3, 4๊ฐ ๋ถ์ฌ๋๋ฏ๋ก,
.item1 {
grid-column-start: 1;
grid-column-end: 4;
}
.item3 {
grid-column-start: 2;
grid-column-end: 4;
}
์ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
1 |
||
2 |
3 |
|
4 |
5 |
6 |
grid-column: 1 / 4; , grid-column: 2 / 4;๋ก ๊ฐ๋จํ๊ฒ ํํํ ์๋ ์์ต๋๋ค.
- 2020/05/24 ์์