[2023.03.08] 11. display: flex

2023. 3. 8. 17:23ใ†Dev./CSS

 

๐Ÿ”display ์†์„ฑ ์ค‘ flex์— ๋Œ€ํ•ด ์ •๋ฆฌ.

 

flex

  • flexible: ์œ ์—ฐํ•œ, ์‹ ์ถ•์„ฑ์žˆ๋Š”, ๊ตฌ๋ถ€๋Ÿฌ์ง€๋Š”
  • ์ž์‹ ์š”์†Œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ ์•ˆ ๊ณต๊ฐ„์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ ํฌ๊ธฐ๋ฅผ ํ‚ค์šฐ๊ฑฐ๋‚˜ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ
  • ๋ถ€๋ชจ ์š”์†Œ๋ฅผ flex-container ์ž์‹ ์š”์†Œ๋ฅผ flex-item.
  • ์ฃผ๋กœ 1์ฐจ์›์  ๋ ˆ์ด์•„์›ƒ(x์ถ• / y์ถ•)์„ ์œ„ํ•ด ์‚ฌ์šฉ

 

[์ถœ์ฒ˜ : ์œ„๋‹ˆ๋ธŒ(Weniv)]

 

flex-container ์†์„ฑ

์•„๋ž˜ ์†์„ฑ๋“ค์€ flex-container(๋ถ€๋ชจ ์š”์†Œ)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

 

flex-direction

  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์•„์ดํ…œ์„ ๋ฐฐ์น˜ํ•  ๋ฐฉํ–ฅ ์ง€์ •
  • row: ๊ธฐ๋ณธ๊ฐ’. ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ(์ฃผ์ถ•์ด ํ–‰ ๋ฐฉํ–ฅ)
  • column: ์œ„์—์„œ ์•„๋ž˜ ๋ฐฉํ–ฅ(์ฃผ์ถ•์ด ์—ด ๋ฐฉํ–ฅ)
  • row-reverse: ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ
  • column-reverse: ์•„๋ž˜์—์„œ ์œ„ ๋ฐฉํ–ฅ

 

justify-content

  • ์ฃผ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด ์œ„์น˜ ์กฐ์ ˆ, ์•„์ดํ…œ ๊ฐ„์˜ ๋ฐฐ์น˜ ์กฐ์ ˆ
  • flex-start, flex-end, center, space-between, space-around, space-evenly

 

align-items, align-content

  • align-items: ๊ต์ฐจ ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
  • align-content: ์ปจํ…Œ์ด๋„ˆ์˜ ๊ต์ฐจ ์ถ•์˜ ์•„์ดํ…œ๋“ค์ด ์—ฌ๋Ÿฌ ์ค„์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ
    • flex-wrap: wrap์ธ ์ƒํƒœ์—์„œ ์‚ฌ์šฉ

 

gap

  • ์•„์ดํ…œ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ ์„ค์ •

 

flex-wrap

  • ํ•œ ์ค„์— ๋ฐฐ์น˜๋˜๊ฒŒ ํ• ์ง€, ๊ฐ€๋Šฅํ•œ ์˜์—ญ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํ–‰์œผ๋กœ ๋‚˜๋ˆ„์–ด ํ‘œํ˜„ํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •.

 

 

flex-flow

  • flex-direction flex-wrap ๋‹จ์ถ• ์†์„ฑ
flex-flow: column wrap;

 

 

flex-item ์†์„ฑ

์•„๋ž˜ ์†์„ฑ๋“ค์€ flex-item(์ž์‹ ์š”์†Œ)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

 

flex-basis

  • flex-item์˜ ์ดˆ๊ธฐ ํฌ๊ธฐ ์„ค์ •
  • width, height์™€ ๋‹ค๋ฅธ ์ 
    • ์ถ•์˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
    • ๋‚ด๋ถ€ ์ฝ˜ํ…์ธ ์— ๋”ฐ๋ผ ์œ ์—ฐํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง
  • auto: ๊ธฐ๋ณธ๊ฐ’
  • row์ผ ๊ฒฝ์šฐ width ๊ฐ’ ๋ฌด์‹œ, column์ผ ๊ฒฝ์šฐ height ๊ฐ’ ๋ฌด์‹œ
  • px, em ๋“ฑ์˜ ๋‹จ์œ„๊ฐ’ ์‚ฌ์šฉ. 0 ์™ธ์— ๋‹ค๋ฅธ ์ƒ์ˆ˜ ์‚ฌ์šฉ X

 

flex-grow

  • ์•„์ดํ…œ์ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์˜ ์ •๋„๋ฅผ ์ง€์ •
  • ํ˜•์ œ ์š”์†Œ์ธ ์•„์ดํ…œ๋“ค์ด ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ’์ด๋ผ๋ฉด, ๋‚ด๋ถ€์—์„œ ๋™์ผํ•œ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค.
  • 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋Š˜์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
  • flex-basis: 0์„ ์ฃผ๊ฒŒ๋˜๋ฉด ์ „์ฒด ๊ณต๊ฐ„์„ ๋ถ„ํ• .

 

flex-shrink

  • ์•„์ดํ…œ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ ์ •ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•  ๋•Œ ์‚ฌ์šฉ
  • 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ค„์–ด๋“ค์ง€ ์•Š๋Š”๋‹ค.

 

align-self

  • ๋ถ€๋ชจ์˜ align-items ์†์„ฑ์„ ๋ฎ์–ด flex-item์—๊ฒŒ ๊ฐœ๋ณ„์ ์ธ ์†์„ฑ ๋ถ€์—ฌ

 

order

  • flex-item๋“ค์˜ ์ˆœ์„œ๋ฅผ ์ˆ˜์˜ ํฌ๊ธฐ๋กœ ๊ฒฐ์ •, ์ˆ˜๊ฐ€ ์ž‘์„์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„
  • ์Œ์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿ’ก๋…ผ๋ฆฌ์ ์ธ ๋งˆํฌ์—… ์ˆœ์„œ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๊ฐ€๋Šฅ

[์ถœ์ฒ˜ : ์œ„๋‹ˆ๋ธŒ(Weniv)]

flex

  • flex-grow flex-shrink flex-basis ๋‹จ์ถ•์†์„ฑ
flex: 1 1 100px;