[ HTML/CSS ] Flexbox

๋ชจ์ž์“ด ์„๋ฅ˜ยท2023๋…„ 7์›” 17์ผ
0

HTML - CSS

๋ชฉ๋ก ๋ณด๊ธฐ
8/10
post-thumbnail

๐Ÿ“Œ Flexbox

  • ์š”์†Œ๋ฅผ ํšจ์œจ์ ์ด๊ณ  ๋™์ ์œผ๋กœ ๋ฐฐ์—ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด์•„์›ƒ ๋ชจ๋ธ
  • ์ด ๋ ˆ์ด์•„์›ƒ์€ 1์ฐจ์›์ด๋ฉฐ ๊ณต๊ฐ„์ด ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„์‚ฐ๋œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์š”์†Œ๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Œ

- Main/Cross Axis

  • Flexbox๋กœ ์ž‘์—…ํ•  ๋•Œ ์ฃผ์ถ•(Main Axis)๊ณผ ๊ต์ฐจ์ถ•(Cross Axis)๋ฅผ ์ƒ๊ฐํ•ด์•ผํ•จ
  • ์ฃผ์ฃฝ์€ flex-direction ์†์„ฑ์— ์˜ํ•ด ์ •์˜๋˜๊ณ  ๊ต์ฐจ์ถ•์€ ์ˆ˜์ง์œผ๋กœ ์ง„ํ–‰๋จ

- Flexbox Compeonents

  • Flex Container : ์š”์†Œ์˜ ํ‘œ์‹œ๋ฅผ flex ๋˜๋Š” inline-flex๋กœ ์„ค์ •ํ•ด ์ƒ์œ„ ์š”์†Œ์˜ ์†์„ฑ์„ ์ •์˜
    display: flex
  • Flex Items : ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ์˜ ์ง๊ณ„ ์ž์‹

- Flexbox Properties

- Flex Container :

flex-direction, flex-wrap, flex-flow,
justify-content , align-items, align-content

- Flex Items :

order, flex-grow, flex-shrink, flex-basis, align-self


Flex Container

  • Flex direction


  • Flex wrap
    : flex์˜ ๋””ํดํŠธ ํŠน์ง•์œผ๋กœ ์•„์ดํ…œ์ด ๋Š˜์–ด๋‚˜๋ช… ์•„์ดํ…œ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค์–ด ์–ด๋–ป๊ฒŒ๋“  ๋‹จ์ผ ์ค„์— ํฌํ•จ์‹œํ‚ฌ ๊ฒƒ => BUT, flex-wrap ์„ค์ •์‹œ ์ค„๋ฐ”๊ฟˆ
  • nowrap(๊ธฐ๋ณธ๊ฐ’) : ๋ชจ๋“  ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์ด ํ•œ์ค„์— ํ‘œ์‹œ
  • wrap : ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์€ ์œ„ -> ์•„๋ž˜๋กœ ์—ฌ๋Ÿฌ์ค„๋กœ ์ค„๋ฐ”๊ฟˆ
  • wrap-reverse : ์•„๋ž˜ -> ์œ„๋กœ ์—ฌ๋Ÿฌ์ค„๋กœ ์ค„๋ฐ”๊ฟˆ


  • Flex flow
    : flex-direction ๋ฐ flex-wrap ์†์„ฑ์˜ ์•ฝ์–ด๋กœ, ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ์˜ ๊ธฐ๋ณธ์ถ•๊ณผ ๊ต์ฐจ์ถ•์„ ์ •์˜. ๊ธฐ๋ณธ๊ฐ’์€ row nowrap
    <flex-direction> <flex-wrap>


  • justify-content
    : ์ฃผ์ถ•์„ ๋”ฐ๋ผ ์ •๋ ฌ์„ ์ •์˜.
    ํ•œ ์ค„์˜ ๋ชจ๋“  ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์ด ์œ ์—ฐํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์œ ์—ฐํ•˜์ง€๋งŒ ์ตœ๋Œ€ํฌ๊ธฐ์— ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ ๋‚จ์€ ์—ฌ์œ  ๊ณต๊ฐ„์„ ๋ถ„์‚ฐํ•˜๋Š”๋ฐ ๋„์›€๋˜๊ณ , ์•„์ดํ…œ์ด ์ค„์„ ๋„˜์„ ๋•Œ ํ•ญ๋ชฉ์˜ ์ •๋ ฌ์„ ์ œ์–ดํ•จ
  • flex-start(๊ธฐ๋ณธ๊ฐ’) : ์•„์ดํ…œ์€ flex-direction์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์„ ํ–ฅํŒจ ํŒจํ‚น
  • flex-end : ์•„์ดํ…œ์ด ํ”Œ๋ ‰์Šค ๋ฐฉํ–ฅ์˜ ๋์œผ๋กœ ํŒจํ‚น
  • center : ์•„์ดํ…œ์ด ์„ ์„ ๋”ฐ๋ผ ์ค‘์•™์— ๋ฐฐ์น˜๋จ
  • space-between : ์•„์ดํ…œ์ด ์ค„์— ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ. ์ฒซ ๋ฒˆ์งธ ์•„์ดํ…œ์€ ์‹œ์ž‘์ค„์— ์žˆ๊ณ  ๋งˆ์ง€๋ง‰ ์•„์ดํ…œ์€ ๋์ค„์— ์žˆ์Œ
  • space-around : ์•„์ดํ…œ ์ฃผ์œ„์— ๋™์ผํ•œ ๊ณต๊ฐ„์ด ์žˆ๋Š” ์ค„์— ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ๋จ.
    ๋ชจ๋“  ์•„์ดํ…œ์˜ ์–‘์ชฝ์— ๋™์ผํ•œ ๊ณต๊ฐ„์ด ์žˆ์–ด ์‹œ๊ฐ์ ์œผ๋กœ ๊ณต๊ฐ„์ด ๋™์ผํ•˜์ง€ ์•Š์Œ.
    ์ฒซ๋ฒˆ์งธ ์•„์ดํ…œ์€ ์ปจํ…Œ๋‹ˆ์–ธ ๊ฐ€์žฅ์ž๋ฆฌ์— ๋Œ€ํ•ด 1๋‹จ์œ„์˜ ๊ณต๊ฐ„ ์žˆ์ง€๋งŒ, ๋‹ค์Œ ์•„์ดํ…œ์—๋Š” ์ ์šฉ๋˜๋Š” ์ž์ฒด ๊ฐ„๊ฒฉ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์•„์ดํ…œ ์‚ฌ์ด์—๋Š” 2๋‹จ์œ„์˜ ๊ณต๊ฐ„์ด ์žˆ์Œ
  • space-evenly : ๋‘ ์•„์ดํ…œ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ ๋ฐ ๊ฐ€์žฅ์ž๋ฆฌ๊นŒ์ง€์˜ ๊ฐ„๊ฒฉ์ด ๋™์ผํ•˜๋„๋ก ์•„์ดํ…œ ๋ฐฐํฌ



  • align-items
    : ์ถ•์˜ ์ˆ˜์ง๋ฐฉํ–ฅ(๊ต์ฐจ์ถ•)์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋จ. ( ํ•œ ์ค„๋กœ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ )


  • align-content
    : ์ˆ˜์ง์ถ•์˜ ๋ผ์ธ์„ ๊ธฐ์ค€์œผ๋กœ (๋‘ ์ค„ ์ด์ƒ์ผ ๋•Œ๋งŒ) ๋ผ์ธ ์ž์ฒด๊ฐ€ ์ •๋ ฌ๋จ
    ๋‘ ์ค„๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋‘ ์ค„์˜ flex-wrap:wrap์ธ ์ƒํƒœ์—์„œ ์‚ฌ์šฉ
    => no-wrap์ผ ๊ฒฝ์šฐ ๋ผ์ธ์ด ๋„˜์–ด๊ฐ€์ง€ ์•Š์•„ ๊ณ„์† ํ•œ ์ค„์ด์–ด์„œ ์ ์šฉ๋˜์ง€ ์•Š์Œ
  • normal(๊ธฐ๋ณธ๊ฐ’) : ์•„์ดํ…œ์ด ๊ฐ’์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๊ธฐ๋ณธ ์œ„์น˜ ํฌ์žฅ๋จ
  • flex-start: ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ํŒจํ‚น๋œ Items
  • flex-end: ์ปจํ…Œ์ด๋„ˆ์˜ ๋๊นŒ์ง€ ํฌ์žฅ๋œ Items
  • center : ์ปจํ…Œ์ด๋„ˆ ์ค‘์•™์— ์žˆ๋Š” Items
  • space-between : ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ๋œ Items
    ์ฒซ ๋ฒˆ์งธ ์ค„์€ ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘๋ถ€๋ถ„์—, ๋งˆ์ง€๋ง‰ ์ค„์€ ๋์— ์žˆ์Œ
  • space-around : ๊ฐ ์ค„ ์ฃผ์œ„์— ๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„ํฌ๋œ Items
  • space-evenly : Items์ด ์ฃผ๋ณ€์— ๋™์ผํ•œ ๊ณต๊ฐ„์œผ๋กœ ๊ณ ๋ฅด๊ฒŒ ๋ถ„ํฌ๋จ
  • stretch : ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋„๋ก ์„ ์„ ๋Š˜๋ฆผ



Flex Items

  • align-self
    : ๊ฐœ๋ณ„ ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ ์ •๋ ฌ(๋˜๋Š” align-items๋กœ ์ง€์ •๋œ ์ •๋ ฌ)์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ
    align-items/content๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ์ž์‹๋“ค ์ „์ฒด๋ฅผ ๋ฌถ์–ด ์ •๋ ฌํ•ด์ฃผ์ง€๋งŒ, ๋ฌด๋ณด ์š”์†Œ์˜ ์ž์‹ ์•„์ดํ…œ๋“ค์„ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด align-self ์‚ฌ์šฉ (align-content ์†์„ฑ์€ ์ง€์›Œ์ค˜์•ผ ์ œ๋Œ€๋กœ ์ ์šฉ ๊ฐ€๋Šฅ)



  • order
    : ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์Šค์ฝ”๋“œ์— ๋‚˜์—ด๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜๋˜๋Š” ํ”Œ๋ ‰์Šค ์•„์ดํ…œ๋“ค์„ order ์†์„ฑ์„ ์ด์šฉํ•ด ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ์— ๋‚˜ํƒ€๋‚˜๋Š” ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•จ. (๊ธฐ๋ณธ๊ฐ’ : 0)



  • flex-grow
    : ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ์•„์ดํ…œ์˜ ๊ธฐ๋ณธ ๋„ˆ๋น„๋ฅผ ์ž๋™์œผ๋กœ ๋Š˜๋ ค ํ–‰ ์•ˆ์— ์ ์ ˆํ•œ ๋„ˆ๋น„๋กœ ๋ฐฐ์น˜๋˜๋„๋ก ๋งž์ถ”๋Š” ๊ธฐ๋Šฅ (์Œ์ˆ˜ ํ—ˆ์šฉX, ๊ธฐ๋ณธ๊ฐ’ 0)
    : ๋ชจ๋“  ํ•ญ๋ชฉ์˜ flex-grow๊ฐ€ 1๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ์˜ ๋‚˜๋จธ์ง€ ๊ณต๊ฐ„์€ ๋ชจ๋“  ์ž์‹์—๊ฒŒ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐ๋จ
    : ์ž์‹ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์ด 2์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ์ž์‹์€ ๋‹ค๋ฅธ ์ž์‹ ์ค‘ ํ•˜๋‚˜์˜ ๋‘ ๋ฐฐ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•จ




  • flex-shrink
    : ํ”Œ๋ ‰์Šค Item์ด ์ถ•์†Œ๋˜๋Š” ๊ธฐ๋Šฅ ์ •์˜. ์ฃผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๋ฒ—์–ด๋‚œ ์•„์ดํ…œ ๋„ˆ๋น„๋ฅผ ๋ถ„๋ฐฐํ•ด ์ค„์ด๋Š”๋ฐ ์‚ฌ์šฉ
    : ๊ธฐ๋ณธ๊ฐ’์€ 1๋กœ ์ด๋ฏธ ์ ์šฉ๋˜์–ด์žˆ์Œ
    : ํ”Œ๋ ‰์Šค ๋ฐ•์Šค์— flex-wrap:wrap ์†์„ฑ ๋ถ€์—ฌ์‹œ ์ ์šฉX



  • flex-basis
    : flex ์•„์ดํ…œ์˜ ๊ธฐ๋ณธ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ
    : ๊ธฐ๋ณธ๊ฐ’์€ auto๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ฝ˜ํ…์ธ ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ฒฐ์ •๋จ



  • flex
    : flex-grow, flex-shrink ๋ฐ flex-basis๊ฐ€ ๊ฒฐํ•ฉ๋œ ์•ฝ์–ด
    flex-shrink์™€ flex-basis๋Š” ์„ ํƒ์‚ฌํ•ญ.
  1. ๊ฐ’์ด 1๊ฐœ
  • ๋‹จ์œ„ X => flex-grow
  • ๋‹จ์œ„ O => flex-basis
  1. ๊ฐ’์ด 2๊ฐœ
  • ์ฒซ ๋ฒˆ์งธ ๊ฐ’์€ ๋‹จ์œ„๊ฐ€ ์—†๋Š” ์ˆซ์ž. ์ฒซ ๋ฒˆ์งธ ๊ฐ’์€ flex-grow
  • ๋‘ ๋ฒˆ์งธ ๊ฐ’์€ ๋‹จ์œ„๊ฐ€ ์—†์œผ๋ฉด flex-shrink, ๋‹จ์œ„ ์žˆ๊ฑฐ๋‚˜ auto๋ฉด flex-basis
  1. ๊ฐ’์ด 3๊ฐœ
  • ์ฒซ ๋ฒˆ์งธ ๊ฐ’ = flex-grow (๋‹จ์œ„X)
  • ๋‘ ๋ฒˆ์งธ ๊ฐ’ = flex-shrink (๋‹จ์œ„X)
  • ์„ธ ๋ฒˆ์งธ ๊ฐ’ = flex-basis (๋‹จ์œ„O / auto)






๐Ÿ“’ John Ahn - <๋”ฐ๋ผํ•˜๋ฉฐ ๋ฐฐ์šฐ๋Š” HTML, CSS> https://inf.run/MzQn

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 7์›” 18์ผ

์ •๋ณด๊ฐ€ ๋งŽ์•„์„œ ๋„์›€์ด ๋งŽ์ด ๋์Šต๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN