๐ŸงฑCSS Flexbox ๋ ˆ์ด์•„์›ƒ ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ

๋ฐฉํ–ฅยท์ •๋ ฌยท์ค„๋ฐ”๊ฟˆยท๊ฐ„๊ฒฉ์„ ๊ณ ๋ฅด๋ฉด ์ปจํ…Œ์ด๋„ˆ์™€ ์•„์ดํ…œ CSS ๊ฐ€ ๋ฐ”๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค

px
๊ฐœ

๊ด€๋ จ๋œ ๋„๊ตฌ

Flexbox ์ฝ”๋“œ๋ฅผ ์™ธ์šฐ์ง€ ์•Š๊ณ  ๋งŒ๋“œ๋Š” ๋ฒ•

๊ฐ€๋กœ ํ•œ ์ค„ ๋ฉ”๋‰ด, ๊ฐ€์šด๋ฐ ์ •๋ ฌ ์นด๋“œ, ๊ณต๊ฐ„์„ ๋‚˜๋ˆ  ๊ฐ–๋Š” ๋ฒ„ํŠผ ์ค„์€ ๋ชจ๋‘ flex ์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ๋งค๋ฒˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฑด justify-content ์™€ align-items ์ค‘ ์–ด๋А ์ชฝ์ด ๊ฐ€๋กœ์ธ์ง€์ž…๋‹ˆ๋‹ค. ๊ณ ๋ฅธ ๊ฐ’์„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ•์Šค์— ์ ์šฉํ•˜๊ณ  ๊ฐ™์€ ๊ฐ’์„ ๋ถ™์—ฌ ์“ธ CSS ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

์–ด๋–ค ์„ ์–ธ์ด ๋‚˜์˜ค๋Š”์ง€

์ปจํ…Œ์ด๋„ˆ์—๋Š” displayยทflex-directionยทjustify-contentยทalign-itemsยทflex-wrapยทgap ์ด ๋‚˜์˜ค๊ณ , align-content ๋Š” ๊ณ ๋ฅธ ๊ฒฝ์šฐ์—๋งŒ ๋ถ™์Šต๋‹ˆ๋‹ค. ์•„์ดํ…œ flex ๊ฐ’์„ ๊ณ ๋ฅด๋ฉด ์ž์‹ ์„ ํƒ์ž ๋ธ”๋ก์ด ์ƒ๊ธฐ๊ณ , 1 1 0 ์€ ๊ธด ๊ธ€์ด ์นธ์„ ๋ฐ€์–ด๋‚ด์ง€ ๋ชปํ•˜๊ฒŒ min-width: 0 ์„ ํ•จ๊ป˜ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์†์„ฑ ํ‘œ๊ธฐ๋Š” W3C CSS Flexible Box Layout ๋ช…์„ธ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค(2026๋…„ 10์›” ๊ธฐ์ค€).

ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ

์•„์ดํ…œ๋ณ„ orderยทalign-self, ๊ทธ๋ฆฌ๋“œ ํŠธ๋ž™ ์„ ์–ธ, ์ „ํ™˜ ํšจ๊ณผ๋Š” ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฉ์ž ๋ฐฐ์น˜๋Š” Grid ์†์„ฑ, ์ „ํ™˜์€ transition ๋„๊ตฌ๊ฐ€ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” ์ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด์„ํ•œ ๊ฒฐ๊ณผ๋ผ์„œ, ์‹ค์ œ ํ™”๋ฉด์—์„œ๋Š” ๋ถ€๋ชจ ํญยท๊ธ€๊ผด์— ๋”ฐ๋ผ ์ค„๋ฐ”๊ฟˆ ์ง€์ ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

justify-content ์™€ align-items ์ค‘ ์–ด๋А ์ชฝ์ด ๊ฐ€๋กœ์ธ๊ฐ€์š”?

flex-direction ์ด row ๋ฉด justify-content ๊ฐ€ ๊ฐ€๋กœ, align-items ๊ฐ€ ์„ธ๋กœ์ž…๋‹ˆ๋‹ค. column ์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋‘ ์ถ•์˜ ์—ญํ• ์ด ๋ฐ”๋€๋‹ˆ๋‹ค.

gap ๋Œ€์‹  margin ์„ ์“ฐ๋ฉด ์•ˆ ๋˜๋‚˜์š”?

gap ์€ ์•„์ดํ…œ ์‚ฌ์ด์—๋งŒ ๊ฐ„๊ฒฉ์„ ๋„ฃ์–ด ์–‘๋์— ๋นˆ ์—ฌ๋ฐฑ์ด ์ƒ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. margin ์œผ๋กœ ๊ฐ™์€ ๋ชจ์–‘์„ ๋‚ด๋ ค๋ฉด ์ฒซยท๋งˆ์ง€๋ง‰ ์•„์ดํ…œ์„ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

align-content ๋ฅผ ๊ณจ๋ž๋Š”๋ฐ ํ™”๋ฉด์ด ์•ˆ ๋ฐ”๋€๋‹ˆ๋‹ค.

flex-wrap ์ด nowrap ์ด๋ฉด ์ค„์ด ํ•˜๋‚˜๋ฟ์ด๋ผ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. wrap ์œผ๋กœ ๋ฐ”๊ฟ” ์•„์ดํ…œ์ด ์ค„์„ ๋„˜๊ธธ ๋•Œ๋ถ€ํ„ฐ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.