๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ“บ Front End/- HTML,css,Javascript

[CSS] ์„ธ๋ จ๋œ Layout ๊ตฌ์„ฑ์„ ์œ„ํ•œ Flexbox ๊ฐœ๋… ๋ฐ ์ถ”์ฒœ ํ•™์Šต ์‚ฌ์ดํŠธ

by Wonit 2020. 10. 4.
ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ flex์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๊ณ  ์™œ flex๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ณ  ์–ด๋–ค ์žฅ์ ์ด ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ฝ”๋“œ ์„ค๋ช…๊ณผ ์†์„ฑ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ๋”์šฑ ์ž˜ ์ •๋ฆฌ๋œ ์‚ฌ์ดํŠธ์™€ ํ•ด๋‹น flex๋ฅผ ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์ถ”์ฒœํ•˜๋Š” ๊ตฌ์„ฑ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Flexbox Layout์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

 

์ง€๋‚œ ์‹œ๊ฐ„์—์„œ ์šฐ๋ฆฌ๋Š” display ์†์„ฑ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉฐ inline-block๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค.

 

๋งŒ์•ฝ div ํƒœ๊ทธ 5๊ฐœ๊ฐ€ inline-block์œผ๋กœ ์ง€์ •๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

์šฐ๋ฆฌ๋Š” ๋ฐฐ๊ฒฝ ์ƒ‰์œผ๋กœ wheat์„ ์ฃผ๊ณ  300 px๋กœ ์Šคํƒ€์ผ๋ง์„ ํ–ˆ๊ณ , ํ™”๋ฉด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™”๋‹ค.

์ผ๋‹จ ๋ฌธ์ œ์ ์ด ์ข€ ๋ณด์ธ๋‹ค.

 

  1. ์šฐ๋ฆฐ div ์‚ฌ์ด์— ๊ฐ„๊ฒฉ์„ ๋„์šฐ์ง€ ์•Š์•˜๋Š”๋ฐ ๊ฐ„๊ฒฉ์ด ์ƒ๊ฒผ๋‹ค
  2. ์šฐ๋ฆฐ 5๊ฐœ์˜ div๋ฅผ ํ•œ ๋ฒˆ์— ๋„์šฐ๊ณ  ์‹ถ์€๋ฐ 4๊ฐœ๋ฅผ ๋ฒ—์–ด๋‚œ 1๊ฐœ๊ฐ€ ๋‹ค์Œ ์ค„์— ์ถœ๋ ฅ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ 1๋ฒˆ 2๋ฒˆ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์น˜์ž.

 

๊ทธ๋Ÿฐ๋ฐ ์•„์ฃผ Criticalํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

2๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ง‘์— ์™€์„œ ๋ชจ๋ฐ”์ผ๋กœ ๋ณด๋‹ˆ ํ™”๋ฉด ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ div๊ฐ€ ์—ฌ๋Ÿฌ ์ค„์— ์ถœ๋ ฅ๋˜๋˜ ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ ๋ฌธ์ œ์ ์„ ์œ„ํ•ด ํƒ„์ƒํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ Flexbox ์ด๋‹ค.

Flexbox

Flexbox๋Š” ๋ชจ๋˜ ์›น์„ ์œ„ํ•ด ๊ธฐ์กด layout ๋ฐฉ์‹(block, inline, inline-block)๋ณด๋‹ค ๋”์šฑ ์„ธ๋ จ๋œ ๋ฐฉ์‹์˜ CSS3์˜ layout์ด๋‹ค.

 

Flexbox๋Š” ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ๋งค์šฐ Flexible ํ•˜๋‹ค.


์š”์†Œ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ถˆ๋ช…ํ™•ํ•˜๊ฑฐ๋‚˜ ๋™์ ์œผ๋กœ ๋ณ€ํ™”ํ•  ๋•Œ๋„ ์œ ์—ฐํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

Flexbox์˜ ์žฅ์ 

flexbox๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „์— ์–ผ๋งˆ๋‚˜ ๋งค๋ ฅ์ ์ธ์ง€ ๋จผ์ € ์•Œ์•„๋ณด์ž.

์žฅ์ ์€

  • 1์ค„์˜ ์ฝ”๋“œ ์ถ”๊ฐ€๋กœ ์ˆ˜ํ‰ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์š”์†Œ์˜ ์ƒํ•˜์ขŒ์šฐ ์ •๋ ฌ, ์ˆœ์„œ ๋ณ€๊ฒฝ์ด ๊ฐ„๋‹จํ•˜๋‹ค.
  • ์š”์†Œ๊ฐ€ ๊ฐ„๊ฒฉ ์กฐ์ ˆ์ด ๊ฐ„๋‹จํ•˜๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ height๋ฅผ ๊ฐ–๋Š” ์š”์†Œ์˜ ์ˆ˜ํ‰์ •๋ ฌ ์‹œ์— ๊ฐ„๋‹จํ•œ ์ƒํ•˜์ค‘์•™ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ css๋Š” css์˜ ๊ธฐ์ดˆ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ„์ด๋ฏ€๋กœ ์ง€๋‚œ ์‹œ๊ฐ„์„ ํ†ตํ‹€์–ด ๋ชจ๋“  ํฌ์ŠคํŒ…์—์„œ ๊นŠ์€ ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ๊ธฐ์กด์˜ inline, block, inline-block์œผ๋กœ ์œ„์— 4๊ฐ€์ง€๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ์—๋Š” ๋งŽ์€ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋‹ค.


flexbox๋ฅผ ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ด๋“œ poiemaweb

flex์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ์œ„ํ•œ ๋ฏธ๋‹ˆ ๊ฒŒ์ž„ flexboxfroggy

๋Œ“๊ธ€