๋ผ์ธ(gutter) : ์์ดํ
์ฌ์ด์ ๊ฐ๊ฒฉ => ๋ฐ๊ณผ ์์ดํ
์ฌ์ด๋ ํฌํจ
(1๋ถํฐ ์์)
item : ๊ฐ๊ฐ์ item์ ๋ํด์ ์ฒ๋ฆฌ
content : ๊ฐ๊ฐ์ item์ ํฌํจํ ์ ์ฒด๋ฅผ ๋ํ๋
grid๋ ๊ฐ๋ก๋ ์ต๋๋ก ๋์ด๋๋ ค๊ณ ์ธ๋ก๋ ์ต๋ํ ์ค์ด๋ค๋ ค๊ณ ํ๋ค
(px์ด ์กด์ฌํ๋ฉด ํด๋น px๋งํผ ๊ฐ๋ก๋ ์ต๋ํ ๋๊ณ ์ธ๋ก๋ ์ต๋ํ ์ค์ด๋ ๋ค.)
๋ช
์ํ์ง ์์ผ๋ฉด span 1์ด ๊ธฐ๋ณธ๊ฐ์
๋๋ค.
row-start๊ฐ 2์ด๊ณ row-end๊ฐ span 2๋ผ๋ฉด ํผ์ณ์ง๋ ์์ญ์ 2 3 4๊น์ง์ ๋ค๋ชจ 2๊ฐ์ ์์ญ์ด ํผ์ณ์ง๋ค.
(๊ธฐ๋ณธ๊ฐ์ด๋ฉด ๋น์ฐํ 2,3๊น์ง์ ์์ญ๋ง ํผ์ณ์ง๋ 1๊ฐ์ ์์ญ)
justify -> ์ํ(ํ)
align -> ์์ง(์ด)
๊ฐ๋ณ๊ธธ์ด : ๋ธ๋ผ์ฐ์ ์ ์ถ์ํ๋์ ๋ฐ๋ผ ์ํฅ์ ๋ฐ๋ ๊ฒ 1fr
๊ณ ์ ๊ธธ์ด : ๋ธ๋ผ์ฐ์ ์ ์ถ์ํ๋์ ๋ฐ๋ผ ์ํฅ์ ๋ฐ์ง์๋ ๊ฒ ~px
- display
- grid-template-rows
- grid-template-columns
- grid-auto-rows
- grid-auto-columns
- grid-auto-flow
- justify-content : ์ ์ฒด ํฐ container ๊ฐ๋ ์ผ๋ก ๋ณด๋ ์ํ(ํ)์ ๋ ฌ
- align-content : ์ ์ฒด ํฐ container ๊ฐ๋ ์ผ๋ก ๋ณด๋ ์์ง(์ด)์ ๋ ฌ
- justify-items : ์์ดํ ์ ๋ฐ๋ฅด๋ ๊ฐ๋ ์ผ๋ก ๋ณด๋ ์ํ(ํ)์ ๋ ฌ
- align-items : ์์ดํ ์ ๋ฐ๋ฅด๋ ๊ฐ๋ ์ผ๋ก ๋ณด๋ ์์ง(ํ)์ ๋ ฌ
- grid-template-areas
- grid-gap
- grid
- inline-grid
1px ์ด๋ 1fr ์ฌ์ฉ
๊ณต๊ฐ๋น์จ : ์ ์ฒด๋ฅผ ์ฑ์ฐ๋ ์ญํ ์ ํ๋ค.
ํด๋น ๋ด์ฉ์ 1fr 1fr 1fr ... ๋์repeat(ํ์ , 1fr)
ํํ๋ก ์ด๋ค.
๋ช ์์ ์ผ๋ก ์ง์ ํ ๋ถ๋ถ ์ด์์ ๋์์ ์ฒ๋ฆฌํ๋ ์ญํ
9๊ฐ๊ฐ ์๋๋ฐ template-rows๋ก 2๊ฐ template-columns๋ก 2๊ฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด
5๊ฐ์ ์์์ ์ฒ๋ฆฌํ ๋์์ด ๋จ์์๋ค.
- dense : ๋น๊ณต๊ฐ์ ๋ฉ์๊ฐ๋ฉฐ ์ ๋ ฌ
- row(๊ธฐ๋ณธ๊ฐ) : ํ์ถ์ ๊ธฐ์ค์ผ๋ก ์์ธ๋ค
- column : ์ด์ถ์ ๊ธฐ์ค์ผ๋ก ์์ธ๋ค
- column dense
- normal
- start
- end
- center
- space-between
- space-around
- space-evenly
- normal
- start
- end
- center
- space-between
- space-around
- space-evenly
container๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น๊ณต๊ฐ์ด ์กด์ฌํ ๋ ์ ์ฉ๋๋ค.
- normal
- start
- end
- center
- normal
- start
- end
- center
justify-content , align-content : container ํฌ๊ธฐ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก item๋ค์ ์ฒ๋ฆฌ
justify-items , align-items : ๊ฐ๊ฐ์ items ํฌ๊ธฐ ๋์ด๋ฅผ ๊ธฐ์ค์ผ๋ก item๋ค์ ์ฒ๋ฆฌ
๊ทธ๋ฆฌ๋ ์์ญ์ ์ฌ๋ฌ ์ ๋ค์ด ์๋๋ฐ ํ ์ ์์ item์ด ์ ๋ณด๋ค ์์ ๋น๊ณต๊ฐ์ด ์๋ค๋ฉด ์ด๋ฅผ ์ ๋ ฌํ ๋ ์ฌ์ฉ
container๊ฐ 1fr๋ก ์ ๋ถ ์ปค์ง๊ณ item๋ค์ด px๋ก ์๋ก๊ฐ์ item๊ฐ์ ๊ณต๋ฐฑ์ด ์์๋ ํด๋น ๋ถ๋ถ์ justify-items์ align-items๋ก ํด๋น ๊ณต๋ฐฑ์ ์ ๋ ฌํ ์ ์๋ค.
" a b c "
" d e f "
" . . f "
" a b d " ํํ
""
์ ์ํด ํ์ ๊ตฌ๋ถํ๋ค. .
์ ์ํด ์ํ ์ํ๋ ๊ณณ์ ์ฒ๋ฆฌํด์ค๋ค
ํด๋น ์ฝ๋ ์คํ์ ์ ์ ์ฉ๋ ๋์ ํ๊ทธ์ grid-area
๋ฅผ ์ ์ฉ์ํจ๋ค.
(.container header { grid-area : a; }
)
ํ๋์ด๋ฉด ์ ๋ถ ํ์ด ์ ์ฉ
๋๊ฐ์ด๋ฉด ๊ฐ๊ฐ ํ์ด ์ ์ฉ
์ด๋ฅผ ๊ธธ๊ฒ์ฐ๋ฉด
grid-row-gap
grid-column-gap ๋ก ๊ฐ๊ฐ ์ฒ๋ฆฌ๊ฐ๋ฅ
- grid-row-start
- grid-row-end
- grid-column-start
- grid-column-end
- grid-row / grid-column
- justify-self
- align-self
- order
- z-index
1) ์ซ์ ํ๊ฐ : ์์๋ผ์ธ์ ๊ฒฐ์ ํ๋ฉฐ end์ ๊ฐ์ด ์ฐ์ธ๋ค.
2) span + ์ซ์ ํ๊ฐ : ๊ธฐ์กด ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ผ๋ก ์ซ์๋งํผ์ ๋๋ ๋ถ๋ถ์ ๋ฉ์ด๋ค.
1) ์ซ์ ํ๊ฐ : start ๋ผ์ธ์ ๊ธฐ์ค์ผ๋ก end๋ฅผ ์ฑ์ด๋ค
2) span + ์ซ์ ํ๊ฐ : ๊ธฐ์กด ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ผ๋ก ์ซ์๋งํผ์ ๋๋ ๋ถ๋ถ์ ๋ฉ์ด๋ค.
1) ์ซ์ ํ๊ฐ : ์์๋ผ์ธ์ ๊ฒฐ์ ํ๋ฉฐ end์ ๊ฐ์ด ์ฐ์ธ๋ค.
2) span + ์ซ์ ํ๊ฐ : ๊ธฐ์กด ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ผ๋ก ์ซ์๋งํผ์ ๋๋ ๋ถ๋ถ์ ๋ฉ์ด๋ค.
1) ์ซ์ ํ๊ฐ : start ๋ผ์ธ์ ๊ธฐ์ค์ผ๋ก end๋ฅผ ์ฑ์ด๋ค
2) span + ์ซ์ ํ๊ฐ : ๊ธฐ์กด ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ผ๋ก ์ซ์๋งํผ์ ๋๋ ๋ถ๋ถ์ ๋ฉ์ด๋ค.
start์ end๋ฅผ ํฉ์ณ์ ์ฌ์ฉํ๋ ์ญํ ๋ก
์ฃผ์ํ ์ ์ ์๋ก๊ฐ์/
๋ก ๊ตฌ๋ถํด์ผํ๋ค .
ex)
grid-row : 3 / 4;
grid-column : 2 / 4;
- normal
- start
- end
- center
- normal
- start
- end
- center
๊ธฐ๋ณธ์ 0 ์ด๊ณ
์ซ์๊ฐ ์์์๋ก ์์ชฝ์ ๋ ฌ
์ซ์๊ฐ ํด์๋ก ๋ค์ชฝ์ ๋ ฌ
container์ scroll์ ์ ์ฉ์ํค๊ณ ํด๋น ํ์์ ์ผ๋ก height๋ฅผ ์ง์ ํด์ผ scroll์ด ๋์๋๋ค.
์ด๋grid-template-columns
๋ ๊ผญ ์ฒ๋ฆฌํด์ผํ๋ค.
์ ๋งคํ๊ฒ 10๊ฐ๋ฅผ 5*2ํ๋ ฌ๋ก ํ๋๋ฐ
์์ชฝ 6๊ฐ๋ง ํด๋น ๊ฒ์ ์ ์ฉ์ํค๋ฉด ๋๋ฎ์ด๊ฐ ๋ค๋ฅด๊ฒ ์ ์ฉ๋๋ฏ๋ก
์ ๋ถ ์ ์ ์ฉ๋๊ฒ ํด์ผํ๋ค.
grid-template-rows: repeat(10, 1fr);
ํ๋ค๋ชปํด ์ด๋ ๊ฒ๋ผ๋ 10์ค๋ค ์ ์ฉ์ํค๊ฒ
grid-template-areas ๊ฐ์ ๊ฒฝ์ฐ ์ ์ฒด Grid ๊ตฌ์กฐ๋ฅผ ํ๋์ CSS ์ฝ๋๋ก ํ์ธํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง,
๊ฐ Grid Item์ ์ด๋ฆ์ ๋ถ์ฌํด์ผ ํ๋ค๋ ๋ถํธํจ๋ ์์ต๋๋ค.
grid-template-areas ์์ฑ์ ์ ํธํ์๋ ๋ถ๋ค๋ ๋ง์ด ์์ต๋๋ค๋ง,
์ ๋ ๊ฐ์ธ์ ์ผ๋ก grid-row์ grid-column ์ฌ์ฉ์ ๋ ์ ํธํฉ๋๋ค.
span ํค์๋๋ฅผ ์ฌ์ฉํด ํ์ฅ์ ๊ฐ๋ ์ ์ฌ์ฉํ๋ฉด ์ผ๋ถ Grid Item์ ๊ฐ๋ง ์ง์ ํด๋ ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด์ง ์ ์๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌํฉ๋๋ค.
ํ์ง๋ง ๊ทธ ๊ฐ์ ๋ช ํํ๊ฒ ์ดํดํ์ง ๋ชปํ ํ์ ์๊ฐ ์๋ค๋ฉด, ๋ช ์์ ์ด์ง ์์ ๋ถ๋ถ์ผ๋ก ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๋๊น์ง๋ ์ํฉ๊ณผ ์ทจํฅ์ ๋ง๊ฒ ์ ํํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก grid๋ block๊ณผ ์ ์ฌํ๋ฐ container์์ row๋ฅผ 1fr๋ก ์ง์ ํ๋ฉด
item๋ด์์ css๋ก ์ ์ฉํheight:auto
๋ ๊ธฐ์กด์ ์ต์ํ์ ๋์ด๋ฅผ ์ ์งํ๋ ค๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ container์ 1fr์ ์ํด ์ต๋ํ ๋์์ง๋ ค๊ณ ํ๋ค.
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
<style>
.container {
width:400px;
height:400px;
border:4px solid;
display:grid;
grid-template-rows: repeat(2,1fr);
grid-template-columns: repeat(2,1fr);
}
.container .item{
border:2px solid;
width:100px;
height:100px;
background-color : orange;
}
.container .item:nth-child(1){
justify-self: center;
align-self: start;
}
.container .item:nth-child(2){
width:auto;
height:auto;
// height:auto;
// ์์ ๊ฒฝ์ฐ height๊ฐ ์ต์ ๋์ด๊ฐ ๋๊ณ ์กด์ฌํ๋ฉด
// 1fr์ ์ํด ์ต๋๋ก ๋์์ง๋ ค๊ณ ํ๋ค.
justify-self: normal;
align-self: normal;
}
</style>