๐Ÿ“

12. Grid

ย 

1. Grid

์ˆ˜์—…์€ chrome์œผ๋กœ ๋‚˜๊ฐ€์ง€๋งŒ grid๋Š” chrome์ด ์•„๋‹ˆ๋ผ firefox๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ์ข€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย 
display:grid;๋กœ ๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ์™€ ์•„์ดํ…œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
ย 
๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ : ๊ทธ๋ฆฌ๋“œ์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ ์˜์—ญ
๊ทธ๋ฆฌ๋“œ ์•„์ดํ…œ : ๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ž์‹ ์š”์†Œ๋“ค
๊ทธ๋ฆฌ๋“œ ํŠธ๋ž™ : ๊ทธ๋ฆฌ๋“œ์˜ ํ–‰(row) ๋˜๋Š” ์—ด(column)
๊ทธ๋ฆฌ๋“œ ์…€ : ๊ทธ๋ฆฌ๋“œ์˜ ํ•œ ์นธ (๊ฐœ๋…์ ์ธ ์ •์˜)
๊ทธ๋ฆฌ๋“œ ๋ผ์ธ : ๊ทธ๋ฆฌ๋“œ ์…€์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์„ 
๊ทธ๋ฆฌ๋“œ ๋„˜๋ฒ„ : ๊ทธ๋ฆฌ๋“œ ๋ผ์ธ์˜ ๊ฐ ๋ฒˆํ˜ธ
๊ทธ๋ฆฌ๋“œ ๊ฐญ : ๊ทธ๋ฆฌ๋“œ ์…€ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ
๊ทธ๋ฆฌ๋“œ ์—์–ด๋ฆฌ์–ด : ๊ทธ๋ฆฌ๋“œ ์…€์˜ ์ง‘ํ•ฉ
์œ„๋‹ˆ๋ธŒ์œ„๋‹ˆ๋ธŒ
์œ„๋‹ˆ๋ธŒ

2. Grid row / column

1) template

grid-template-columns : ์—ด์˜ ๋„“์ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
grid-template-rows : ํ–‰์˜ ๋†’์ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
repeat( ์ ์šฉํ•  ํŠธ๋ž™์˜ ๊ฐฏ์ˆ˜, ๋ฐ˜๋ณตํ•  ์ˆ˜์น˜ ) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ทธ๋ฆฌ๋“œ ํŠธ๋ž™ ๋ณ„ ์ˆ˜์น˜ ๋ฐ˜๋ณต์„ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย 

3. Gap

1) row - gap
2) column-gap
3) grid-gap, gap
gap: 20px 5px;
โœ” IE์—์„œ๋Š” gap์˜ ๋Œ€์ฒด ์†์„ฑ์ด ์—†์–ด์„œ IE์—์„œ์˜ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ gap์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค
ย 

4. ๊ฐ ์…€์˜ ์˜์—ญ ์ง€์ •

1) grid-column-start
2) grid-column-end
3) grid-column
/*item*/ .item { grid-column-start: 1; grid-column-end: 2; grid-column : 1 / span 2; }
4) grid-row-start
5) grid-row-end
6) grid-row
/*item*/ .item { grid-row-start: 1; grid-row-end: 2; grid-row : 1 / span 2; }
ย 
ย 

์‹ค์Šต1

๊ณ„์‚ฐ๊ธฐ ๊ทธ๋ฆฌ๋“œ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์–ด๋ณด๊ธฐ(๋งŒ์•ฝ ํ•œ๋‹ค๋ฉด CSS ์ฝ”๋“œ ์ˆ˜์ • ํ•„์š”ํ•จ)
์ฝ”๋“œ
<!DOCTYPE html> <html> <head> <title>Parcel Sandbox</title> <meta charset="UTF-8" /> <link rel="stylesheet" href="./src/styles.css"> </head> <body> <div class="container"> <div class="row-1"> <input type="text" /> </div> <div class="row-2"> <button type="button" class="reset-btn">AC</button> <button type="button" class="etc-btn">+/-</button> <button type="button" class="percentage-btn">%</button> <button type="button" class="calc" value="divide">รท</button> </div> <div class="row-3"> <button type="button" class="number">7</button> <button type="button" class="number">8</button> <button type="button" class="number">9</button> <button type="button" class="calc" value="multiply">ร—</button> </div> <div class="row-4"> <button type="button" class="number">4</button> <button type="button" class="number">5</button> <button type="button" class="number">6</button> <button type="button" class="calc" value="minus">-</button> </div> <div class="row-5"> <button type="button" class="number">1</button> <button type="button" class="number">2</button> <button type="button" class="number">3</button> <button type="button" class="calc" value="plus">+</button> </div> <div class="row-6"> <button type="button" class="number">0</button> <button type="button" class="number">.</button> <button type="button" class="result-btn" class="result">=</button> </div> </div> </body> </html>
body { font-family: sans-serif; box-sizing: border-box; } .container { padding: 10px; display: grid; grid-template-rows: repeat(6, 80px); gap: 10px; background: #000000; } div[class^="row"] { display: grid; grid-template-columns: repeat(4, 80px); gap: 10px; } input { grid-column: 1 / span 4; text-align: right; background: #0000; border: none; color: #ffff; font-size: 55px; } input:focus { outline: none; } button { border-radius: 50%; font-size: 30px; border: none; background: #c4c4c4; color: #fff; cursor: pointer; transition: opacity 0.4s; } .row-6 button:first-child { grid-column: 1/3; border-radius: 60px; } .number { background: #333333; } .calc, .result-btn { background: #fe9f06; color: #fff; } .number:active, .reset-btn:active, .etc-btn:active, .percentage-btn:active, .result-btn:active { opacity: 0.6; } .calc:focus { background: #fff; color: #fe9f06; }
ย 
VSCode ์‹คํ–‰ ์ด๋ฏธ์ง€VSCode ์‹คํ–‰ ์ด๋ฏธ์ง€
VSCode ์‹คํ–‰ ์ด๋ฏธ์ง€
ย 

์‹ค์Šต 2

Grid : row 5, column5
margin : 10
gap : 10
(์œ„ image.zip ํŒŒ์ผ์— ์ €์žฅ๋œ ์ด๋ฏธ์ง€๋Š” pixabay.com์— ์žˆ๋Š” ๋ฌด๋ฃŒ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.)
ย 
์œ„๋‹ˆ๋ธŒ ์œ„๋‹ˆ๋ธŒ
์œ„๋‹ˆ๋ธŒ

(์‹ค์Šต) ์ „์ฒด ๋ณต์Šต ์ฝ”๋“œ ๋ฐ ์„ฑ๋ฐฐ ๋ ˆ์ด์•„์›ƒ ๊ทธ๋ฆฌ๊ธฐ

์ถœ์ฒ˜ : ์œ„๋‹ˆ๋ธŒ์ถœ์ฒ˜ : ์œ„๋‹ˆ๋ธŒ
์ถœ์ฒ˜ : ์œ„๋‹ˆ๋ธŒ