ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿš€ css flexbox responsive design tutorial โ€” avoid these common layout mistakes
Dev.toDev.to
Frontend

Mobile-first Flexbox ์„ค๊ณ„๋ฅผ ํ†ตํ•œ ๋ชจ๋ฐ”์ผ ์ดํƒˆ๋ฅ  42%์—์„œ 12%๋กœ ๊ฐœ์„ 

๐Ÿš€ css flexbox responsive design tutorial โ€” avoid these common layout mistakes

Python-T Point2026๋…„ 4์›” 25์ผ7๋ถ„beginner

Context

๊ณ ์ • ํ•ด์ƒ๋„ ์ค‘์‹ฌ์˜ ๋ ˆ์ด์•„์›ƒ ์„ค๊ณ„๋กœ ์ธํ•œ ์ €์‚ฌ์–‘ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ์˜ UI ๋ถ•๊ดด ํ˜„์ƒ ๋ฐœ์ƒ. ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ๋‹จ์ˆœ ์Šค์ผ€์ผ๋ง ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋กœ ์ธํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ €ํ•˜ ๋ฐ ๋†’์€ ์ดํƒˆ๋ฅ  ๊ธฐ๋ก.

Technical Solution

  • Mobile-first ์ „๋žต ๊ธฐ๋ฐ˜์˜ CSS ์„ค๊ณ„๋กœ ์ž‘์€ ํ™”๋ฉด ์šฐ์„  ๊ตฌํ˜„ ํ›„ ๋Œ€ํ™”๋ฉด์œผ๋กœ ํ™•์žฅํ•˜๋Š” ์ ์ง„์  ํ–ฅ์ƒ ๊ตฌ์กฐ ์ฑ„ํƒ
  • flex-direction ์†์„ฑ์„ ํ†ตํ•œ ๋””๋ฐ”์ด์Šค ๋„ˆ๋น„๋ณ„ ๋ ˆ์ด์•„์›ƒ ๋ฐฉํ–ฅ ์ „ํ™˜(Column to Row) ๊ตฌํ˜„
  • flex: 1 1 [min-width] ์„ค์ •์„ ํ†ตํ•ด ์ฝ˜ํ…์ธ  ๊ฐ€์šฉ ๊ณต๊ฐ„์— ๋”ฐ๋ฅธ ๋™์  ํ™•์žฅ ๋ฐ ์ตœ์†Œ ๋„ˆ๋น„ ๋ณด์žฅ ๋กœ์ง ์ ์šฉ
  • Media Queries๋ฅผ ํ™œ์šฉํ•œ Breakpoint ์„ค์ •์œผ๋กœ ๋””๋ฐ”์ด์Šค ํ•ด์ƒ๋„๋ณ„ ์ตœ์ ํ™”๋œ ์ •๋ ฌ ๋ฐฉ์‹(justify-content) ์ œ์–ด
  • flex-wrap๊ณผ gap ์†์„ฑ์„ ์กฐํ•ฉํ•˜์—ฌ ๊ณ ์ • ํผ์„ผํŠธ ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•œ ์ฝ˜ํ…์ธ  ์ธ์‹ํ˜• ๋™์  ๊ทธ๋ฆฌ๋“œ ์„ค๊ณ„
  • Chrome DevTools ๊ธฐ๋ฐ˜ ๊ฒ€์ฆ์„ ๋„˜์–ด ์‹ค์ œ ๋ฌผ๋ฆฌ ๊ธฐ๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•œ ๋ Œ๋”๋ง ๋ฐ ํ„ฐ์น˜ ๋™์ž‘ ๋ถˆ์ผ์น˜ ํ•ด๊ฒฐ

- Mobile-first ์ ‘๊ทผ๋ฒ•์œผ๋กœ CSS ์ž‘์„ฑ ํ›„ @media (min-width)๋ฅผ ํ†ตํ•œ ํ™•์žฅ ์„ค๊ณ„ ๊ฒ€ํ†  - flex-basis ๊ธฐ๋ฐ˜์˜ ์ตœ์†Œ ๋„ˆ๋น„ ์„ค์ •์„ ํ†ตํ•ด ์ €์‚ฌ์–‘ ๊ธฐ๊ธฐ ๋‚ด ์ฝ˜ํ…์ธ  ๊ฒน์นจ ํ˜„์ƒ ๋ฐฉ์ง€ - DevTools ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ์‹ค์ œ ๋ฌผ๋ฆฌ ๊ธฐ๊ธฐ ๊ฐ„์˜ ๋ Œ๋”๋ง ์ฐจ์ด ๊ฒ€์ฆ ๋‹จ๊ณ„ ํฌํ•จ - ๋‹จ์ˆœ ํผ์„ผํŠธ(%) ๋„ˆ๋น„๋ณด๋‹ค๋Š” flex-grow/shrink ์†์„ฑ์„ ํ†ตํ•œ ๋™์  ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ์ ์šฉ

์›๋ฌธ ์ฝ๊ธฐ