[CSS] Flexbox Froggy μ†”λ£¨μ…˜πŸΈ

SuKongΒ·2021λ…„ 4μ›” 6일
1
post-thumbnail

🐸 Flexbox Froggyλž€ ?

: CSSμ½”λ“œ κ²Œμž„μœΌλ‘œ Flexbox의 속성을 μš”κ΅¬ν•œλŒ€λ‘œ μž…λ ₯ν•˜λ©΄ λ‹€μŒ λ‹¨κ³„λ‘œ λ„˜μ–΄κ°ˆ 수 μžˆλŠ” κ²Œμž„
: Flexbox의 속성을 μ‹€μŠ΅ν•˜λ©° 읡히기 μ’‹λ‹€

⭐️ Flexbox Froggy둜 이동 ⭐️

✨ κ°œλ…

Flex (flex box)λž€?

μ•„μ΄ν…œλ“€μ„ κ°€λ‘œ λ°©ν–₯으둜 λ°°μΉ˜ν•  수 μžˆλŠ” λ°©μ‹μœΌλ‘œ μš”μ†Œμ˜ 크기가 뢈문λͺ…ν•˜κ±°λ‚˜ 동적인 κ²½μš°μ—λ„ 각 μš”μ†Œλ₯Ό μ •λ ¬ν•  수 μžˆλŠ” 효율적인 방법을 μ œκ³΅ν•¨
Flex의 속성은 μ»¨ν…Œμ΄λ„ˆμ— μ μš©λ˜λŠ” 속성, μ•„μ΄ν…œμ— μ μš©λ˜λŠ” μ†μ„±μœΌλ‘œ λ‚˜λ‰¨

1. Container에 μ μš©ν•  수 μžˆλŠ” 속성

μ†μ„±μ˜λ―ΈμΈμž
displayFlex Container μ •μ˜flex
justify-contentκ°€λ‘œμ„  μƒμ—μ„œμ˜ μ •λ ¬ 방식 (μœ„μΉ˜)flex-start : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ μ™Όμͺ½μœΌλ‘œ μ •λ ¬
flex-end : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ 였λ₯Έμͺ½μœΌλ‘œ μ •λ ¬
center : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ κ°€μš΄λ°λ‘œ μ •λ ¬
space-between : μš”μ†Œλ“€ 사이에 λ™μΌν•œ 간격을 λ‘ 
space-around : μš”μ†Œλ“€ μ£Όμœ„μ— λ™μΌν•œ 간격을 λ‘ 
align-itemsμ„Έλ‘œμ„  μƒμ—μ„œμ˜ μ •λ ¬ 방식 (μœ„μΉ˜)flex-start : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ κΌ­λŒ€κΈ°λ‘œ μ •λ ¬
flex-end : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ λ°”λ‹₯으둜 μ •λ ¬
center : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ μ„Έλ‘œμ„  μƒμ˜ κ°€μš΄λ°λ‘œ μ •λ ¬
baseline : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ μ‹œμž‘ μœ„μΉ˜μ— μ •λ ¬
stretch : μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ— λ§žλ„λ‘ 늘림
flex-directionμ»¨ν…Œμ΄λ„ˆ λ‚΄ μš”μ†Œλ“€μ˜ μ •λ ¬ λ°©ν–₯row : μš”μ†Œλ“€μ„ ν…μŠ€νŠΈμ˜ λ°©ν–₯κ³Ό λ™μΌν•˜κ²Œ μ •λ ¬
row-reverse : μš”μ†Œλ“€μ„ ν…μŠ€νŠΈμ˜ λ°˜λŒ€ λ°©ν–₯으둜 μ •λ ¬
column : μš”μ†Œλ“€μ„ μœ„μ—μ„œ μ•„λž˜λ‘œ μ •λ ¬
column-reverse : μš”μ†Œλ“€μ„ μ•„λž˜μ—μ„œ μœ„λ‘œ μ •λ ¬
flex-wrapitems의 쀄 λ°”κΏˆ μ„€μ •nowrap: λͺ¨λ“  μš”μ†Œλ₯Ό ν•œ 쀄에 μ •λ ¬
wrap: μš”μ†Œλ“€μ„ μ—¬λŸ¬ 쀄에 걸쳐 μ •λ ¬
wrap-reverse: μš”μ†Œλ“€μ„ μ—¬λŸ¬ 쀄에 걸쳐 'λ°˜λŒ€λ‘œ' μ •λ ¬
flex-flowflex-direction와 flex-wrap의 단좕 속성< flex-direction인자 > < flex-wrap인자 >
align-contentμ—¬λŸ¬μ€„μ˜ 간격 지정 (ν•œ 쀄일 경우 효과X)flex-start : μ—¬λŸ¬ 쀄듀을 μ»¨ν…Œμ΄λ„ˆμ˜ κΌ­λŒ€κΈ°μ— μ •λ ¬
flex-end : μ—¬λŸ¬ 쀄듀을 μ»¨ν…Œμ΄λ„ˆμ˜ λ°”λ‹₯에 μ •λ ¬
center : μ—¬λŸ¬ 쀄듀을 μ„Έλ‘œμ„  μƒμ˜ κ°€μš΄λ°μ— μ •λ ¬
space-between : μ—¬λŸ¬ 쀄듀 사이에 λ™μΌν•œ 간격을 λ‘ 
space-around : μ—¬λŸ¬ 쀄듀 μ£Όμœ„μ— λ™μΌν•œ 간격을 λ‘ 
stretch : μ—¬λŸ¬ 쀄듀을 μ»¨ν…Œμ΄λ„ˆμ— λ§žλ„λ‘ 늘림

2. Items에 μ μš©ν•  수 μžˆλŠ” 속성

order, align-self, flex λ“±

μ†μ„±μ˜λ―ΈμΈμž
orderflex item의 μˆœμ„œ κ²°μ •μ •μˆ˜ (μˆ«μžκ°€ μž‘μ„μˆ˜λ‘ μ•žμœΌλ‘œ, 클수둝 뒀에 μœ„μΉ˜ν•˜κ²Œ 됨 )
align-selfν•΄λ‹Ή μ•„μ΄ν…œμ˜ μ„Έλ‘œμ„  μƒμ—μ„œμ˜ μ •λ ¬ 방식 (μœ„μΉ˜)
align-selfλ₯Ό κ°œλ³„ μš”μ†Œμ— μ μš©ν•  수 μžˆλŠ” 방식
flex-start, flex-end, center, baseline, stretch

✨ 단계별 풀이

πŸ’Ž justify-content ν™œμš©

justify-content 속성

  1. flex-start: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ μ™Όμͺ½μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  2. flex-end: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ 였λ₯Έμͺ½μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  3. center: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ κ°€μš΄λ°λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  4. space-between: μš”μ†Œλ“€ 사이에 λ™μΌν•œ 간격을 λ‘‘λ‹ˆλ‹€.
  5. space-around: μš”μ†Œλ“€ μ£Όμœ„μ— λ™μΌν•œ 간격을 λ‘‘λ‹ˆλ‹€.

문제 1. 였λ₯Έμͺ½μ— 배치

μ •λ‹΅ :
justify-content : flex-end

문제 2. κ°€λ‘œμ„ μƒ 쀑심에 배치

μ •λ‹΅ :
justify-content : center

문제 3. κ°€λ‘œμ„ μƒ μš”μ†Œ μ£Όμœ„μ— 간격 두기

μ •λ‹΅ :
justify-content : space-around

문제 4. κ°€λ‘œμ„ μƒ μš”μ†Œ 사이에 간격 두기

μ •λ‹΅ :
justify-content : space-between

πŸ’Ž align-items ν™œμš©

align-items 속성

  1. flex-start: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ κΌ­λŒ€κΈ°λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  2. flex-end: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ λ°”λ‹₯으둜 μ •λ ¬ν•©λ‹ˆλ‹€.
  3. center: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ μ„Έλ‘œμ„  μƒμ˜ κ°€μš΄λ°λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  4. baseline: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ˜ μ‹œμž‘ μœ„μΉ˜μ— μ •λ ¬ν•©λ‹ˆλ‹€.
  5. stretch: μš”μ†Œλ“€μ„ μ»¨ν…Œμ΄λ„ˆμ— λ§žλ„λ‘ λŠ˜λ¦½λ‹ˆλ‹€.

문제 5. μ„Έλ‘œμ„ μƒ λ°”λ‹₯에 배치

μ •λ‹΅ :
align-items: flex-end

문제 6. 쀑앙에 배치

μ •λ‹΅ :
justify-content : center;
align-items : center;

문제 7. λ°”λ‹₯에 배치 + μš”μ†Œ μ£Όμœ„μ— 간격

μ •λ‹΅ :
justify-content : space-around;
align-items : flex-end;

πŸ’Ž flex-direction ν™œμš©

flex-direction 속성

  1. row: μš”μ†Œλ“€μ„ ν…μŠ€νŠΈμ˜ λ°©ν–₯κ³Ό λ™μΌν•˜κ²Œ μ •λ ¬ν•©λ‹ˆλ‹€.
  2. row-reverse: μš”μ†Œλ“€μ„ ν…μŠ€νŠΈμ˜ λ°˜λŒ€ λ°©ν–₯으둜 μ •λ ¬ν•©λ‹ˆλ‹€.
  3. column: μš”μ†Œλ“€μ„ μœ„μ—μ„œ μ•„λž˜λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  4. column-reverse: μš”μ†Œλ“€μ„ μ•„λž˜μ—μ„œ μœ„λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

문제 8. μš”μ†Œλ“€μ˜ μˆœμ„œλ₯Ό λ°˜λŒ€ λ°©ν–₯으둜 μ •λ ¬ (μœ„μΉ˜ 우츑으둜 λ°€λ¦Ό)

μ •λ‹΅ :
flex-direction : row-reverse

문제 9. μš”μ†Œλ₯Ό μ„Έλ‘œλ‘œ μ •λ ¬

μ •λ‹΅ :
flex-direction : column

문제 10. μš”μ†Œ μˆœμ„œλ°˜λŒ€, μœ„μΉ˜ κ·ΈλŒ€λ‘œ μ •λ ¬

μ •λ‹΅ :
flex-direction : row-reverse;
justify-content : flex-end;

문제 11. μ„Έλ‘œλ‘œ, λ°”λ‹₯에 배치

μ •λ‹΅ :
flex-direction : column;
justify-content : flex-end;

λ°”λ‹₯에 λ°°μΉ˜μ§€λ§Œ columnλ°©ν–₯으둜 μ •λ ¬λ˜μ–΄ μžˆμœΌλ―€λ‘œ justify-contentλ₯Ό μ‚¬μš©ν•΄μ„œ λ°”λ‹₯에 μœ„μΉ˜ν•˜λ„λ‘ ν•œλ‹€.

문제 12. μ„Έλ‘œλ‘œ, μš”μ†Œ 사이에 곡간 배치

μ •λ‹΅ :
flex-direction : column-reverse;
justify-content : space-between;

문제 13. μš”μ†Œ μˆœμ„œ λ°˜λŒ€, κ°€λ‘œμ„ μƒ 쀑앙, λ°”λ‹₯에 배치

μ •λ‹΅ :
flex-direction : row-reverse;
justify-content : center;
align-items : flex-end;

πŸ’Ž order ν™œμš©

order 속성

'μ •μˆ˜'둜 각 μš”μ†Œμ— μ μš©ν•  수 있음
λ””ν΄νŠΈλŠ” 0이닀

문제 14. ν•΄λ‹Ή μš”μ†Œλ₯Ό λ§ˆμ§€λ§‰ μˆœμ„œλ‘œ 배치

μ •λ‹΅ :
order : 1

문제 15. ν•΄λ‹Ή μš”μ†Œλ₯Ό 첫 μˆœμ„œλ‘œ 배치

μ •λ‹΅ :
order : -1

πŸ’Ž align-self ν™œμš©

align-self 속성

align-items와 λ™μΌν•œ 속성을 ν™œμš©
ν•΄λ‹Ή μš”μ†Œμ—λ§Œ μ μš©ν•  λ•Œ ν™œμš©ν•œλ‹€

문제 16. ν•΄λ‹Ή μš”μ†Œ λ°”λ‹₯에 배치

μ •λ‹΅ :
align-self : flex-end;

문제 17. ν•΄λ‹Ή μš”μ†Œ λ§ˆμ§€λ§‰ μˆœμ„œ, λ°”λ‹₯에 배치

μ •λ‹΅ :
align-self : flex-end;
order : 1

πŸ’Ž flex-wrap ν™œμš©

flex-wrap 속성

  1. nowrap: λͺ¨λ“  μš”μ†Œλ“€μ„ ν•œ 쀄에 μ •λ ¬ν•©λ‹ˆλ‹€.
  2. wrap: μš”μ†Œλ“€μ„ μ—¬λŸ¬ 쀄에 걸쳐 μ •λ ¬ν•©λ‹ˆλ‹€.
  3. wrap-reverse: μš”μ†Œλ“€μ„ μ—¬λŸ¬ 쀄에 걸쳐 λ°˜λŒ€λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

문제 18. μš”μ†Œλ₯Ό μ—¬λŸ¬ 쀄에 걸쳐 μ •λ ¬

μ •λ‹΅ :
flex-wrap : wrap

문제 19. μ„Έλ‘œλ‘œ, μ—¬λŸ¬μ€„μ— 걸쳐 μ •λ ¬

μ •λ‹΅ :
flex-direction : column;
flex-wrap : wrap

πŸ’Ž flex-flow ν™œμš©

flex-flow 속성

< flex-direction인자 > < flex-wrap인자 >

문제 20. μ„Έλ‘œλ‘œ, μ—¬λŸ¬μ€„μ— 걸쳐 μ •λ ¬

μ •λ‹΅ :
flex-flow : column wrap

πŸ’Ž align-content ν™œμš©

align-content 속성

  1. flex-start: μ—¬λŸ¬ 쀄듀을 μ»¨ν…Œμ΄λ„ˆμ˜ κΌ­λŒ€κΈ°μ— μ •λ ¬ν•©λ‹ˆλ‹€.
  2. flex-end: μ—¬λŸ¬ 쀄듀을 μ»¨ν…Œμ΄λ„ˆμ˜ λ°”λ‹₯에 μ •λ ¬ν•©λ‹ˆλ‹€.
  3. center: μ—¬λŸ¬ 쀄듀을 μ„Έλ‘œμ„  μƒμ˜ κ°€μš΄λ°μ— μ •λ ¬ν•©λ‹ˆλ‹€.
  4. space-between: μ—¬λŸ¬ 쀄듀 사이에 λ™μΌν•œ 간격을 λ‘‘λ‹ˆλ‹€.
  5. space-around: μ—¬λŸ¬ 쀄듀 μ£Όμœ„μ— λ™μΌν•œ 간격을 λ‘‘λ‹ˆλ‹€.
  6. stretch: μ—¬λŸ¬ 쀄듀을 μ»¨ν…Œμ΄λ„ˆμ— λ§žλ„λ‘ λŠ˜λ¦½λ‹ˆλ‹€.

문제 21. μ—¬λŸ¬ 쀄듀을 상단에 μ •λ ¬

μ •λ‹΅ :
align-content : flex-start;

문제 22. μ—¬λŸ¬ 쀄듀을 λ°”λ‹₯에 μ •λ ¬

μ •λ‹΅ :
align-content : flex-end;

문제 23. μš”μ†Œλ“€μ„ μ„Έλ‘œλ°©ν–₯, λ°˜λŒ€ μˆœμ„œλ‘œ, μ—¬λŸ¬ 쀄듀을 μ€‘μ•™μœΌλ‘œ μ •λ ¬

** μ •λ‹΅ :
flex-direction : column-reverse;
align-content : center;

문제 24.

μ •λ‹΅ :
flex-flow : column-reverse wrap-reverse;
justify-content : center;
align-content : space-between;

profile
μ•ˆλ…•ν•˜μ„Έμš” πŸ€—

0개의 λŒ“κΈ€