์ฐธ๊ณ ์๋ฃ
๊ทธ ์ธ์ ์ถ๊ฐ๋ก ํ์ธํ๋ฉด ์ข์ ๋ธ๋ก๊ทธ
https://studiomeal.com/archives/533
<head>
<style>
*{
box-sizing: border-box;
}
body{
width: 100vw;
height: 100vh;
margin: 0;
}
.item{
display:flex;
justify-content: center;
align-items: center;
border:1px solid #181818;
font-weight: 900;
font-size:1.2rem;
}
.item1{
background-color: #fff8d9;
}
.item2{
background-color: #dfffd9;
}
.item3{
background-color: #d9feff;
}
.item4{
background-color: #dcd9ff;
}
.item5{
background-color: #ffd9e1;
}
.container{
display : grid;
}
</style>
</head>
<body>
<div class="container">
<div class="item item1">item1</div>
<div class="item item2">item2</div>
<div class="item item3">item3</div>
<div class="item item4">item4</div>
<div class="item item5">item5</div>
<div class="item item1">item6</div>
<div class="item item2">item7</div>
<div class="item item3">item8</div>
<div class="item item4">item9</div>
<div class="item item5">item10</div>
</div>
</body>
์ด ์ฝ๋ ๋ด์์ ๋์ถฉ ์ฉ์ด๋ค์ ์ ๋ฆฌํ์๋ฉด,
Grid Container
<div class=”container”></div>, grid์ ์ ์ฒด ์์ญ
Grid Item
Grid Container์ ์์ ์์๋ค๋ก, <div class=”item”></div>
Grid Track
Grid์ Row๋ Column
Grid Cel
Grid ํ ์นธ์ ์๋ฏธํ๋ฉฐ, Item์ ์ค์ html <div> ํ๊ทธ ์์๋ฅผ, Cell์ item ํ๋๊ฐ ๋ค์ด๊ฐ๋ ๊ฐ์์ ์นธ(?)
Grid Line
Grid Cell์ ๊ตฌ๋ถํ๋ ์
Grid Number
Grid Line์ ๊ฐ ๋ฒํธ
Grid Gap
Grid Cell ์ฌ์ด์ ๊ฐ๊ฒฉ
Grid Area
Grid Line์ ๋๋ฌ์ผ ์ฌ๊ฐํ ์์ญ, Grid Cell์ ์งํฉ
์ฐ์ ๊ธฐ๋ณธ ์ธํ ์ ์ด์ ๊ฐ์ด ํด๋๋ค.
display:grid๋ง ์ค์ ํ๋ฉด ์ฒ์์๋ ๋ง์น block์ ์ฌ์ฉํ ๊ฒ ์ฒ๋ผ ๋ณด์ฌ์ง๋ค.
Grid ๋ถ๋ชจ ๊ด์ ์์ฑ
๋จผ์ , Grid Track์ ํฌ๊ธฐ๋ค์ ์ง์ ํด์ฃผ๋ ์์ฑ grid-template-columns์ grid-template-rows์ ๊ฐ์ ์ง์ ํ๋ค.
.container{
display:grid;
/* grid-template-columns: 100px 100px 100px 100px 100px; */
grid-template-columns: repeat(5, 100px);
/* 100px 100px 100px 100px 100px๋ฅผ repeat(5, 100px)๋ก ๊ฐ๋จํ ๋ฐ๊ฟ ์ธ ์ ์๋ค. */
grid-template-rows: 100px 200px repeat(2, 100px);
}
์ด๋ ๊ฒ ์ ์ ์ธ px ๊ฐ์ด ์๋ ๋ฐ์ํ์ผ๋ก ์ง์ ํ๊ณ ์ถ๋ค๋ฉด
.container{
display:grid;
grid-template-columns: repeat(5, 20%);
/*๋๋ grid-template-columns: repeat(5, 1fr) ๋ก ์ง์ ํด๋ ๋๋ค.*/
grid-auto-rows : 150px; /* ์๋์ผ๋ก ํ์ ๋์ด๋ฅผ 150px๋ก ๋ง์ถฐ์ค */
}
์ด ๋ grid-auto-rows : 150px; ์ ์ฝ๋๋ cell ๋ด๋ถ ๋ด์ฉ์ด ๋๋ฌด ๋ง์ ๋์น๊ฒ ๋๋ฉด ์๋ ค์ ๋ณด์ด์ง ์๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ์ ๋์ ์ผ๋ก ์์์ ๋ง์ถฐ์ฃผ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
.container{
display:grid;
grid-template-columns: 1fr 2fr 1fr;
grid-auto-rows : minmax(150px, auto);
}
๊ฐ cell ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ฃผ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
grid-gap์ผ๋ก row์ column ๋ชจ๋์๊ฒ ์ค์ ์ ํ ์๋ ์์ผ๋ฉฐ, grid-column-gap ์ด๋ grid-row-gap์ผ๋ก ๋ ์ค ํ๋์๋ง ์ค์ ํ ์๋ ์๋ค.
.container{
display:grid;
grid-template-columns: repeat(5, 1fr);
grid-auto-rows : 150px;
grid-gap : 10px;
}
Grid ์์ ๊ด์ ์์ฑ
์ด๋ฒ์๋ ๊ฐ ์ ์ ์์ญ์ ์ง์ ํ ๊ฒ์ด๋ค.
<div class="container">
<div class="item item1">item1</div>
<div class="item item2 grid2">item2</div>
<div class="item item3">item3</div>
<div class="item item4">item4</div>
<div class="item item5">item5</div>
<div class="item item1">item6</div>
<div class="item item2">item7</div>
<div class="item item3">item8</div>
<div class="item item4">item9</div>
<div class="item item5">item10</div>
</div>
๋ณํ๋ฅผ ์ฃผ๊ธฐ ์ํด grid2 ํด๋์ค๋ฅผ ์ถ๊ฐํ๋ค.
grid ํด๋์ค๋ ์ง๊ธ column 2๋ฒ๊ณผ 3๋ฒ ์ฌ์ด์ ๊ปด์๋ ์ ์ด ๋๋ค.
์ด ๋ ์ด column์ ์์ ์๋ ์ฐ์ธก ์ด๋ฏธ์ง์ฒ๋ผ 5๋ฒ๊น์ง ํ์ฅ์ํค๊ณ ์ถ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ฉด ๋๋ค.
.grid2 {
grid-column-start : 2;
grid-column-end : 5;
}
row๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
1๋ฒ๋ถํฐ 2๋ฒ๊น์ง ์ฐจ์งํ๊ณ ์๋ row๋ฅผ 1๋ฒ๋ถํฐ 3๋ฒ๊น์ง๋ก ๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์๋ค.
.grid2 {
grid-column-start : 2;
grid-column-end : 5;
grid-row-start: 1;
grid-row-end: 3;
}
์ด ๋ ์์ 4์ค์ ์ฝ๋๋ฅผ ๊ฐ๋จํ๊ฒ 2์ค๋ก ๋ฐ๊ฟ ์๊ฐ ์๋ค.
.grid2 {
grid-column : 2/5;
/* ๋๋ grid-column: 2 / span 3; ์ ์์ฑํ์ฌ ์ธ ์นธ์ ์ฌ์ฉํ๋ค๊ณ ์์ฑํ ์๋ ์๋ค*/
/* grid-colum: 2/-1; ์ -1(์ฆ ๋งจ ๋ง์ง๋ง ์ค)๊น์ง ์ฌ์ฉํ๋ค๋ ๋ป์ด๋ค.*/
grid-row: 1/3;
}
Grid Areas
์ด๋ฒ์ ์ด๋ฏธ์ง ์ฝ๋๋ฅผ ์ฌ์ฉํ์ ์ ๊ทธ๋ฅ ์์ ์ ์ฌ๋ผ์ ์๋ ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ํ์ธํด๋ณด๊ธฐ๋ก ํ๋ค.
css-study > css-grid-main > video_code > image.html, image.css ํ์ธ
์ง๊ธ์ ๋ฒ์จ ์๋ฒฝ 2์๊ฐ ๋ค ๋์ผ๋ฏ๋ก... ๋ด์ผ ํ๋ฒ grid๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ์นํ์ด์ง ํ๋๋ฅผ ๋ง๋ค์ด ๋ณผ ์๊ฐ์ด๋ค.
'html, css' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ง์ง ๊ฒน์นจ ํ์(margin collapsing) (0) | 2025.03.10 |
---|---|
Flex vs Grid (0) | 2025.03.05 |
์ฝ๋๋๋ - HTML, CSS / Chapter 7 - ๋ฐ์ํ ์น์ฌ์ดํธ ๋ง๋ค๊ธฐ Bootstrap (0) | 2022.05.16 |
์ฝ๋๋๋ - HTML, CSS / chapter 6 - Spotify ์น์ฌ์ดํธ ๋ง๋ค๊ธฐ (0) | 2022.05.15 |
์ฝ๋๋๋ - HTML, CSS / chapter 5 - HTML์ ์ข ๋ ์ฝ๊ฒ ์์ง์ด๋ ๋ฐฉ๋ฒ (0) | 2022.02.16 |