[CSS] Flexbox
web/html & css

[CSS] Flexbox

float

๋ชฉ์  : ์ด๋ฏธ์ง€์™€ ํ…์ŠคํŠธ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•  ๊ฒƒ์ธ์ง€ ์ •์˜
- left, center, right : ํ…์ŠคํŠธ๊ฐ€ ์ด๋ฏธ์ง€ ๊ฐ์‹ธ๋Š” ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚จ

 

flexbox

1. container์— ์ ์šฉ : display, flex-direction, flex-wrap, justifu-content, align-iems, ...
2. item์— ์ ์šฉ : order, flex-grow, flex, align-self, flex-shrink
์ค‘์‹ฌ์ถ•(main axis)๊ณผ ๋ฐ˜๋Œ€์ถ•(cross axis)์ด ์žˆ๋‹ค

 

์‹ค์Šต ์ค€๋น„

div.container>div.item.item${$}*10 ์ž…๋ ฅ ํ›„ tabํ‚ค ๋ˆ„๋ฅด๊ธฐ

Tip
height: 100% → ์•„์ดํ…œ์— ๋งž๊ฒŒ ๋†’์ด๊ฐ€ ์ง€์ •๋จ, ์•„์ดํ…œ์ด ๋“ค์–ด์žˆ๋Š” ๋ถ€๋ชจ์˜ ๋†’์ด์— 100% ์ฑ„์šฐ๊ฒ ๋‹ค
์˜ˆ๋ฅผ ๋“ค๋ฉด, container์˜ ๋ถ€๋ชจ๋Š” body๋‹ˆ๊นŒ body์˜ ๋†’์ด์— 100% ์ฑ„์šฐ๊ฒ ๋‹ค
body์˜ ๋ถ€๋ชจ๋Š” html์ด๋ฏ€๋กœ body์˜ height: 100%๋กœ ์ง€์ •ํ•˜๋ฉด html์˜ ๋†’์ด์— 100% ์ฑ„์šด๋‹ค

height: 100vh → ์•„์ดํ…œ์„ ๋ถ€๋ชจ์— ์ƒ๊ด€์—†์ด, ํ˜„์žฌ ๋ณด์ด๋Š” height๋ฅผ 100% ๋‹ค ์“ฐ๊ฒ ๋‹ค
80ํผ๋งŒ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด 80vh ๋“ฑ

 

1. container์— ์ ์šฉํ•˜๋Š” flexbox

flex-direction

   1) ์ค‘์‹ฌ์ถ• : ์ˆ˜ํ‰

row : ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ, ๋””ํดํŠธ
row-reverse : ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ

   2) ์ค‘์‹ฌ์ถ• : ์ˆ˜์ง

column : ์œ„์—์„œ ์•„๋ž˜
column-reverse : ์•„๋ž˜์—์„œ ์œ„

flex-wrap

๋“ค์–ด์žˆ๋Š” ์•„์ดํ…œ๋“ค ์ค„๋ฐ”๊ฟˆ ๊ด€๋ จ
nowrap : ๋žฉํ•‘ ์•ˆํ•จ, ํ™”๋ฉด ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ ธ๋„ ํ•œ ์ค„์— ๊ณ„์† ๋ถ™์–ด์žˆ๋‹ค, ๋””ํดํŠธ
wrap : ์•„์ดํ…œ์ด ํ•œ์ค„์— ๊ฝ‰ ์ฐจ๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์Œ ์ค„๋กœ ๋„˜์–ด๊ฐ„๋‹ค
wrap-reverse : ์œ„์—์„œ ๋ฐ˜๋Œ€๋กœ ๋žฉํ•‘

flex-flow

direction๊ณผ wrap ํ•œ๋ฒˆ์— ์ •์˜ ๊ฐ€๋Šฅ
์˜ˆ๋ฅผ ๋“ค๋ฉด border: 1px solid black; ์ฒ˜๋Ÿผ ์ •์˜ํ•˜๋“ฏ์ด!

justify-content

์•„์ดํ…œ์„ ์ค‘์‹ฌ์ถ•(main axis)์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ• ์ง€ ๊ฒฐ์ •
flex-start : ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ, ๋””ํดํŠธ
flex-end : ์˜ค๋ฅธ์ชฝ ๋ ์ถ•์œผ๋กœ ๋ฐฐ์น˜, ์•„์ดํ…œ ์ˆœ์„œ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€
space-around : ๊ฐ ์•„์ดํ…œ๋“ค ๋‘˜๋Ÿฌ์‹ธ๋Š” space ์ƒ์„ฑ, ์–‘ ๋๊ณผ ์‚ฌ์ด์˜ ์•„์ดํ…œ๋“ค ๊ฐ„๊ฒฉ์ด ๋‹ค๋ฅด๋‹ค
space-evenly : ์•„์ดํ…œ๋“ค์— ๋˜‘๊ฐ™์€ ๊ฐ„๊ฒฉ์„ ๋„ฃ์–ด์คŒ, ์–‘ ๋ ์•„์ดํ…œ ํฌํ•จ
space-between : ์–‘ ๋ ์•„์ดํ…œ์€ ํ™”๋ฉด์— ๋ถ™์ด๊ณ , ์ค‘๊ฐ„ ์•„์ดํ…œ์—๋งŒ ๊ฐ„๊ฒฉ์„ ๋„ฃ์–ด์คŒ

align-items

์•„์ดํ…œ์„ ๋ฐ˜๋Œ€์ถ•(cross axis)์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ• ์ง€ ๊ฒฐ์ •
baseline : ๋ฐ•์Šค ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ๋„ ํ…์ŠคํŠธ๊ฐ€ baseline์— ๋งž์ถฐ์„œ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐ์น˜๋œ๋‹ค

align-content

์•„์ดํ…œ๋“ค์ด 2ํ–‰ ์ด์ƒ ์žˆ์„ ๋•Œ ๋ฐ˜๋Œ€์ถ•์—์„œ์˜ ๋ฐฐ์น˜ ๊ฒฐ์ •
space-between : ์œ„ ์•„๋ž˜๋Š” ๋์— ๋ถ™์–ด์žˆ๊ณ  ์‚ฌ์ด ์•„์ดํ…œ์—๋Š” ๊ฐ„๊ฒฉ ์ค€๋‹ค
center : ์ค‘๊ฐ„์œผ๋กœ ์•„์ดํ…œ๋“ค ๋ชจ์€๋‹ค

 

2. item์— ์ ์šฉํ•˜๋Š” flexbox

order

๊ฐ ์•„์ดํ…œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

flex-grow

์•„์ดํ…œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฝ‰ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋Š˜์–ด๋‚œ๋‹ค
๋””ํดํŠธ ๊ฐ’์€ 0
๊ฐ ์•„์ดํ…œ์˜ ํฌ๊ธฐ "๋น„์œจ"์„ ์ง€์ •

flex-shrink

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ ์  ์ž‘์•„์ง€๋ฉด ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•˜๋Š”์ง€ ์ง€์ •
๋‹ค๋ฅธ ์•„์ดํ…œ๋“ค์— ๋น„ํ•ด์„œ ๋ช‡ ๋ฐฐ๋กœ ์ž‘๊ฒŒ ์ค„์–ด๋“ค์–ด๋ผ

flex-basis

์•„์ดํ…œ๋“ค์ด ๊ณต๊ฐ„์„ ์–ผ๋งˆ๋‚˜ ์ฐจ์ง€ํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ธ๋ถ€์ ์ธ ๋ช…์‹œ
๋””ํดํŠธ ๊ฐ’์€ auto
๊ฐ ์•„์ดํ…œ๋“ค์ด ์ฐจ์ง€ํ•˜๋Š” % ์ง€์ •

align-self

์•„์ดํ…œ๋ณ„๋กœ ์•„์ดํ…œ๋“ค ์ •๋ ฌ ๊ฐ€๋Šฅ
์˜ˆ๋ฅผ ๋“ค๋ฉด, ํ•˜๋‚˜์˜ ์•„์ดํ…œ๋งŒ center๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ๋“ฑ

 

 

 

 

์ฐธ๊ณ  : youtube ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ(https://www.youtube.com/watch?v=7neASrWEFEM)

'web > html & css' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS] ๋ฐ˜์‘ํ˜• ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ  (0) 2021.07.13
[CSS] em, rem ๊ทธ๋ฆฌ๊ณ  css์˜ ๋‹จ์œ„๋“ค  (0) 2021.07.09
[CSS] position  (0) 2021.07.09
[Bootstrap] checkbox์™€ radio  (0) 2021.06.25
[CSS] Flex Container  (0) 2021.05.16