HTML & CSS

Flexbox -> flex-direction, flex-wrap, flex-flow

kelly09 2024. 5. 6. 16:18

๐Ÿฐ Flexbox๋ž€?

  • 1์ฐจ์› ์ฝ˜ํ…์ธ ์šฉ์œผ๋กœ ์„ค๊ณ„๋œ ๋ ˆ์ด์•„์›ƒ ๋ชจ๋ธ
  • ์•„์ดํ…œ ๊ฐ„ ๊ณต๊ฐ„ ๋ฐฐ๋ถ„, ๊ฐ•๋ ฅํ•œ ์ •๋ ฌ ๊ธฐ๋Šฅ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋จ
  • ์™œ 1์ฐจ์›์ด๋ผ๊ณ  ํ•˜๋Š”๊ฐ€? -> ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ฐจ์›(ํ–‰ or ์—ด)๋งŒ ๋‹ค๋ฃธ. <-> Grid Layout
  • flex container๋กœ flex item๋“ค์„ ๋ฌถ์–ด์•ผ ํ•จ

 

๐Ÿฐ flex ๋ฐฉํ–ฅ ์ง€์ •ํ•˜๋Š” flex-direction ์†์„ฑ

  • flex-direction ์†์„ฑ์œผ๋กœ ์„ค์ •ํ•œ ์ถ• = ์ฃผ ์ถ•(main axis)
  • ์ฃผ ์ถ•์— ์ˆ˜์ง์ธ ์ถ• = ๊ต์ฐจ ์ถ•(cross axis)
  • row => ์ฃผ ์ถ•์€ ํ–‰(๊ฐ€๋กœ), ๊ต์ฐจ ์ถ•์€ ์—ด(์„ธ๋กœ) - ๊ธฐ๋ณธ๊ฐ’
  • row-reverse => flex-item์€ ์ฃผ์ถ• ๋์ ์—์„œ ์‹œ์ž‘์ ์œผ๋กœ(์˜ค๋ฅธ์ชฝ -> ์™ผ์ชฝ) ๋ฐฐ์น˜
  • column => ์ฃผ ์ถ•์€ ์—ด(์„ธ๋กœ), ๊ต์ฐจ ์ถ•์€ ํ–‰(๊ฐ€๋กœ)
  • column-reverse => flex-item์€ ์ฃผ์ถ• ๋์ ์—์„œ ์‹œ์ž‘์ ์œผ๋กœ(์•„๋ž˜์ชฝ -> ์œ„์ชฝ) ๋ฐฐ์น˜

 

๐Ÿฐ ์ ‘๊ทผ์„ฑ ์ธก๋ฉด์—์„œ์˜ reverse

  • ์‹œ๊ฐ์  ํ‘œ์‹œ๋ฅผ ์žฌ์ •๋ ฌํ•˜๋Š” ์†์„ฑ ์‚ฌ์šฉ ์‹œ ์ ‘๊ทผ์„ฑ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ ์ค„ ์ˆ˜ ์žˆ์–ด์„œ ์ฃผ์˜
  • row-reverse์™€ column-reverse => ์žฌ์ •๋ ฌ์ด ์‹œ๊ฐ์  ์ˆœ์„œ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฐœ์ƒ ๐Ÿ‘๐Ÿป , ๋…ผ๋ฆฌ์  ์ˆœ์„œ ์ •๋ ฌ X

 

๐Ÿฐ ํ•œ ์ค„/ ์—ฌ๋Ÿฌ ์ค„ ๋ฐฐ์น˜ํ•˜๋Š” flex-wrap ์†์„ฑ

  • no-wrap - ํ•ญ๋ชฉ์„ ํ•œ ์ค„์— ํ‘œ์‹œ. ๊ธฐ๋ณธ๊ฐ’
  • wrap - ํ•ญ๋ชฉ์„ ์—ฌ๋Ÿฌ ์ค„์— ํ‘œ์‹œ
  • wrap-reverse - ํ•ญ๋ชฉ์„ ์—ฌ๋Ÿฌ ์ค„์— ํ‘œ์‹œ, ๊ธฐ์กด ๋ฐฉํ–ฅ๊ณผ ๋ฐ˜๋Œ€๋กœ ๋ฐฐ์น˜

wrap-reverse ์˜ˆ์‹œ
ํŽ˜์ด์ง€ ์ค„์˜€์„ ๋•Œ
๋” ์ค„์˜€์„ ๋•Œ
์ค„์˜€์„ ๋•Œ(์ง„์งœ ์ตœ์ข…)

  • wrap-reverse๋กœ ์ง€์ • ์‹œ ์ฃผ์ถ•: ์‹œ์ž‘์  -> ๋์ (์™ผ์ชฝ -> ์˜ค๋ฅธ์ชฝ), ๊ต์ฐจ์ถ•: ๋์  -> ์‹œ์ž‘์ (์•„๋ž˜ -> ์œ„)

๐Ÿฐ flex ๋ฐฉํ–ฅ๊ณผ ์—ฌ๋Ÿฌ ์ค„ ๋ฐฐ์น˜ ํ•œ๊บผ๋ฒˆ์— ์ง€์ •ํ•˜๋Š” flex-flow ์†์„ฑ

  • flex-flow: <flex ๋ฐฉํ–ฅ> <flex ์ค„ ๋ฐฐ์น˜>
flex-flow: row; /* ์™ผ -> ์˜ค๋ฅธ, ํ•œ ์ค„์— ํ‘œ์‹œ */
flex-flow: column wrap; /* ์œ„ -> ์•„๋ž˜, ์—ฌ๋Ÿฌ ์ค„์— ํ‘œ์‹œ */

์ฐธ๊ณ : https://developer.mozilla.org/ko/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox,

https://web.dev/learn/css/flexbox?hl=ko