[ HTML/CSS ] Flexbox

from.kΒ·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일

정보가 λ§Žμ•„μ„œ 도움이 많이 λμŠ΅λ‹ˆλ‹€.

λ‹΅κΈ€ 달기