CSS (3) - Flexbox

๋‚จ์œจยท2023๋…„ 1์›” 9์ผ
0

2023.01.04. Flexbox
https://www.youtube.com/watch?v=7neASrWEFEM
์œ„ ๋งํฌ๋กœ ๊ณต๋ถ€ํ•จ.

๐ŸŽ๊ฟ€ํŒ๐ŸŽ

๋‹ค์Œ html ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ ค๋ฉด

div.container>div.item.item${$}*10

๋ฅผ ์ž‘์„ฑํ•œ ํ›„์— TAB ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋จ.


Flexbox๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ์— 2๊ฐ€์ง€๊ฐ€ ์ค‘์š”.

  1. ๋ฐ•์Šค์— ์ ์šฉ๋˜๋Š” ์†์„ฑ๊ฐ’์ด ์กด์žฌ
  2. ๊ฐ๊ฐ์˜ ์•„์ดํ…œ์— ์ ์šฉ๋˜๋Š” ์†์„ฑ๊ฐ’์ด ์กด์žฌ
  • Item์— ์ ์šฉ๋˜๋Š” ์†์„ฑ๊ฐ’
    -> order, flex-grow, flex-shrink, flex, align-self

--

<๊ฐœ๋…1>
Flexbox ์—๋Š” ์ค‘์‹ฌ์ถ•๊ณผ ๋ฐ˜๋Œ€์ถ•์ด ์žˆ์Œ.

์ˆ˜ํ‰์ถ•์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์ˆ˜ํ‰์ถ•์ด ์ค‘์‹ฌ์ถ•์ธ ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Œ, ์ˆ˜์ง์ถ•์€ ๋ฐ˜๋Œ€์ถ•์ด ๋จ.
๋ฐ˜๋Œ€๋กœ ๋‹ค์Œ ๊ทธ๋ฆผ์€,

์ˆ˜์ง์ถ•์œผ๋กœ ์ •๋ ฌ -> ์ˆ˜์ง์ถ•์ด ์ค‘์‹ฌ์ถ•, ์ˆ˜ํ‰์ถ•์ด ๋ฐ˜๋Œ€์ถ•์ด ๋จ.

์ค‘์‹ฌ์ถ•์„ ์–ด๋””์— ๋‘๋Š๋ƒ์— ๋”ฐ๋ผ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๋€๋‹ค๊ณ  ๋ณด๋ฉด ๋จ.


.container {
  background: beige;
  height: 10vh;
  display: flex;
  flex-direction: row
  flex-wrap: nowrap;
}

height: 100vh; -> ๋ถ€๋ชจ์— ์ƒ๊ด€์—†์ด ๋ณด์ด๋Š” ๊ณณ์— 100% ๋‹ค ์•„์ดํ…œ์„ ์ถœ๋ ฅํ•˜๊ฒ ๋‹ค
display: flex; -> flexbox๋ฅผ ์ด์šฉํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์จ์ค˜์•ผ ํ•จ
flex-direction: row; -> ๊ธฐ๋ณธ๊ฐ’์€ Row. ์™ผ->์˜ค ๋ฐฉํ–ฅ์ž„.
flex-direction: row-reverse; -> ์˜ค->์™ผ ๋ฐฉํ–ฅ
flex-direction: column; -> ๋ฐ•์Šค๋“ค์ด ์œ„์—์„œ ์•„๋ž˜๋กœ ์—ด ๋ฐฉํ–ฅ์œผ๋กœ ํ‘œ์‹œ๋จ.
flex-wrap: nowrap; -> wrap์˜ ๊ธฐ๋ณธ๊ฐ’์ž„. ์•„์ดํ…œ๋“ค์ด ์ถœ๋ ฅ์ฐฝ์„ ์ค„์ด๊ณ  ๋Š˜๋ฆฌ๋“  ์ƒ๊ด€์—†์ด ํ•œ ์ค„์— ๊ณ„์† ๋ถ™์–ด์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ.
flex-wrap: rap; -> ์•„์ดํ…œ๋“ค์ด ํ•œ ์ค„์— ์ฐจ๋ฉด ์ž๋™์ ์œผ๋กœ ๋‹ค์Œ ๋ผ์ธ์œผ๋กœ ๋„˜์–ด๊ฐ.
flex-wrap: wrap-reverse; -> ๊ฑฐ๊พธ๋กœ ์•„๋ž˜์—์„œ๋ถ€ํ„ฐ ์•„์ดํ…œ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง€๊ฒจ wrapping๋จ.
flex-flow: column nowrap; -> ํ•œ ์ค„๋กœ direction๊ณผ wrap ์†์„ฑ์„ ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์Œ.


justify-content : ์ค‘์‹ฌ์ถ•์—์„œ ์•„์ดํ…œ์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•  ๊ฑด์ง€ ๊ฒฐ์ •ํ•ด์คŒ.

justify-content: flex-start; : ์ฒ˜์Œ๋ถ€ํ„ฐ ์™ผ->์˜ค ๋ฐฉํ–ฅ์œผ๋กœ. ์ˆ˜์ง์ถฉ์ด ์ค‘์‹ฌ์ถ•์ด๋ผ๋ฉด ์œ„์—์„œ ์•„๋ž˜๋กœ
justify-content: flex-end; : ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ๊ณผ ๊ฐ™์€ ํšจ๊ณผ. ์˜ค->์™ผ ๋ฐฉํ–ฅ. direction์ด column์ด๋ฉด ๋ฐ‘์—์„œ ์•„๋ž˜์ชฝ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ฒŒ ๋จ.
*column-reverse์— ์˜ํ–ฅ ๋ฐ›์ง€ ์•Š๊ณ  ์•„์ดํ…œ ์ˆœ์„œ๋Š” ๊ทธ๋Œ€๋กœ ๊ฐ€๊ฒŒ๋จ.
justify-content: center; : ์•„์ดํ…œ๋“ค์„ ์„ผํ„ฐ์— ๋งž์ถฐ์„œ ๋†“์Œ.
justify-content: space-around; : ๋ฐ•์Šค๋ฅผ ๋‘˜๋Ÿฌ์‹ธ๊ฒŒ ๊ณต๊ฐ„์„ ๋„ฃ์–ด์คŒ.

justify-content: space-evenly; : ์•„์ดํ…œ ๊ฐ„๊ฒฉ์„ ์•„์˜ˆ ๋˜‘๊ฐ™๊ฒŒ ํ•ด์คŒ.
justify-content: space-between; : ์™ผ, ์˜ค๋Š” ์ปจํ…Œ์ด๋„ˆ์— ๋”ฑ ๋งž๊ฒŒ, ์•„์ดํ…œ ์‚ฌ์ด์ธ ์ค‘๊ฐ„์—๋งŒ ๊ฐ„๊ฒฉ์„ ๋„ฃ์–ด์คŒ.

align-items : ๋ฐ˜๋Œ€์ถ•์—์„œ์˜ ์•„์ดํ…œ ์†์„ฑ๊ฐ’์„ ๊ฒฐ์ •ํ•ด์คŒ

align-items: center; : ์ค‘์‹ฌ์ถ•์ด ์ˆ˜ํ‰์ถ•์ด๋ฏ€๋กœ, ๋ฐ˜๋Œ€์ถ•์ธ ์ˆ˜์ง์ถ•์—์„œ ์•„์ดํ…œ๋“ค์ด ์ • ์ค‘์•™์— ์œ„์น˜ํ•˜๊ฒŒ ํ•ด์คŒ.
align-items: baseline; : item์ค‘ ํ•˜๋‚˜์— Padding์ด ์žˆ์–ด์„œ ๋ฐ•์Šค ์•ˆ์— ํ…์ŠคํŠธ ์œ„์น˜๊ฐ€ ๋ฐ”๋€ ๊ฒฝ์šฐ์—


์œ„ ์‚ฌ์ง„์—์„œ,


์œ„์ฒ˜๋Ÿผ ํ…์ŠคํŠธ๊ฐ€ ๊ฐ™์€ ๋ผ์ธ์—์„œ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”๊ฟ”์คŒ.

align-content: baseline; : ๋ฐ˜๋Œ€์ถ•์—์„œ ์•„์ดํ…œ์„ ์ง€์ •ํ•˜๊ฒŒ ๋จ.
align-content: space-between, center, evenly ๋“ฑ ์œ„์—์„œ ์ ์šฉํ•œ ์†์„ฑ ๋‹ค ๋ฐ˜๋Œ€์ถ•์—์„œ ์ ์šฉ๋˜๋„๋ก ์ด์šฉ๊ฐ€๋Šฅ

ํ—ท๊ฐˆ๋ฆด ๋•Œ๋งˆ๋‹ค ์ฐธ๊ณ ํ•  ์‚ฌ์ดํŠธ : https://velog.io/@choonghee-lee/%EB%B2%88%EC%97%AD-A-Complete-Guide-to-Flexbox

flex-grow: number; -> number์— ์–ด๋–ค ์ˆซ์ž๋ฅผ ๋„ฃ๋Š๋ƒ์— ๋”ฐ๋ผ ์•„์ดํ…œ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๊ฐ™์ด ๋Š˜์–ด๋‚จ. ์‚ฌ์ง„์—์„  item1์˜ ๊ฐ’์ด 2์ด๊ธฐ ๋•Œ๋ฌธ์— 1์ธ ๋‹ค๋ฅธ 2,3์˜ ๋‘๋ฐฐ ๊ธธ์ด๋กœ ๋Š˜์–ด๋‚˜๊ฒŒ ๋จ.

flex-shrink: number; -> ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ ์  ์ž‘์•„์กŒ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•˜๋ƒ๋ฅผ ์ง€์ •. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค„์ด๋ฉด ์ •ํ•ด์ค€ ์ˆซ์ž์˜ ๋น„์œจ๋งŒํผ ๋” ์ค„์–ด๋“ค๊ณ  ๋œ ์ค„์–ด๋“ค๊ณ ๊ฐ€ ๊ฒฐ์ •๋จ.

flex-basis: auto; -> grow๋‚˜ shrnik์— ๋งž์ถฐ์„œ ์•„์ดํ…œ์— ์ง€์ •๋œ ๋Œ€๋กœ ๋ณ€ํ•˜๊ฒŒ ๋จ.

flex-basis: n%; -> ๊ธฐ๋ณธ๊ฐ’์€ auto. auto์˜ ๊ฒฝ์šฐ grow๋‚˜ shrink์— ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋˜์–ด ์žˆ์Œ. ๋น„์œจ์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ์ปค์ง€๊ฑฐ๋‚˜ ์ž‘์•„์งˆ ๋•Œ ๊ทธ ๋งŒํผ์˜ ๋น„์œจ๋Œ€๋กœ ์กฐ์ •๋จ.

align-self: ->์ปจํ…Œ์ด๋„ˆ์— ์ง€์ •๋œ ๊ฒƒ์„ ๋ฒ—์–ด๋‚˜์„œ ์•„์ดํ…œ ํ•˜๋‚˜๋งŒ ์†์„ฑ์„ ๋ฐ”๊ฟ”์ค„ ์ˆ˜ ์žˆ์Œ.

ex. align-self: center;

์ •๋ฆฌ

  1. Flex box์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊พธ๋ฉฐ์ฃผ๋Š” ์†์„ฑ๊ฐ’, ์•„์ดํ…œ์„ ๊พธ๋ฉฐ์ฃผ๋Š” ์†์„ฑ๊ฐ’์ด ์žˆ์Œ.
  2. Flex box์—๋Š” ๋‘๊ฐ€์ง€์˜ ์ถ• - ์ค‘์‹ฌ์ถ•, ๋ฐ˜๋Œ€์ถ• - ์ด ์žˆ์Œ. ์ด ์ถ•์€ ์ˆ˜ํ‰์ด๋ƒ ์ˆ˜์ง์ด๋ƒ์— ๋”ฐ๋ผ ๋ฐ”๋€Œ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

Flexbox Froggy๋กœ ์—ฐ์Šตํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ !

์˜ค๋Š˜๋„ ๋“œ๋ฆผ์ฝ”๋”๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)!!

profile
ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐจ๊ทผ์ฐจ๊ทผ

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