๋ฐ์ํ
1๏ธโฃ flex์ ๊ตฌ์กฐ
- flexbox๋ ํ๊ณผ ์ด ํํ๋ก ํญ๋ชฉ ๋ฌด๋ฆฌ๋ฅผ ๋ฐฐ์นํ๋ ์ผ์ฐจ์ ๋ ์ด์์.
- ๊ณต๊ฐ์ ๋ง์ถ๊ธฐ ์ํด ์ถ์๋๊ฑฐ๋ ์ฌ๋ฐฑ์ ๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํด ๋ณํ๋๋ค. ์ฆ ์ ์ฐํ ๋น์จ๋ก ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํ๋ ๊ธฐ๋ฅ!
- ๋ถ๋ชจ ์์๋ flex-container ์์ ์์๋ flex-item
2๏ธโฃ flex-direction
- ์์ดํ ์ ๋ฐฐ์นํ ๋ ์ฃผ์ถ๊ณผ ๋ฐฉํฅ์ ์ง์ !
- โก๏ธ row ๊ธฐ๋ณธ๊ฐ. ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ๋ฐฐ์น.
- โฌ๏ธ column ์์์ ์๋๋ก ๋ฐฐ์น.
- โฌ ๏ธ row-reverse ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ ๋ฐฐ์น.
- โฌ๏ธ column-reverse ์๋์์ ์๋ก ๋ฐฐ์น.
3๏ธโฃ Justify-content
- row, column์ ์ฃผ์ถ์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น.
- flex-start ๊ธฐ๋ณธ ๊ฐ, ์์ ์ถ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น.
- flex-end ๋ง์ง๋ง ์ถ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น.
- center ๊ฐ์ด๋ฐ ๋ฐฐ์น.
- space-between ์ ๋ ๊ธฐ์ค ์์๋ค๋ง ๋์ผํ ๊ฐ๊ฒฉ์ ๋๊ณ ๋ฐฐ์น.
- space-around ์ ๋์ ์์๋ค๊ณผ ๋์ผํ ๊ฐ๊ฒฉ 1๊ฐ๋ฅผ ๋๊ณ ๋ฐฐ์น.
- space-evenly ์ ๋์ ๊ฐ๊ฐ ์์๋ค๊ณผ ๋์ผํ ์ฌ๋ฐฑ์ ๋ฃ์ด ๋ฐฐ์น
๐ก space-around ์ space-evenly์ ์ฐจ์ด?
์์ ์ฌ์ด์ ๊ณ์ฐ๋ ๋์ผํ ์ฌ๋ฐฑ์ ์ ๋์๋ ํ ๋นํ ๋
space-around ๋ ์ฌ๋ฐฑ 1๊ฐ ํฌ๊ธฐ๋ฅผ ์ ๋์ ๋ฐฐ์น. ์ฆ 50%์ฉ ์ฌ๋ฐฑํฌ๊ธฐ ํ ๋น.
space-evenly ๋ ์ฒ์๊ณผ ๋์ ๊ฐ๊ฐ 1๊ฐ์ฉ ์ฌ๋ฐฑํฌ๊ธฐ๋ฅผ ํ ๋น.
4๏ธโฃ align-items, align-content
- align-items ๊ต์ฐจ ์ถ์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์น.
- align-content flex-wrap:wrap ์ธ ๊ฒฝ์ฐ ๊ต์ฐจ ์ถ ์์ดํ ๋ค์ด ์ฌ๋ฌ ์ค์ผ๋ ์ฌ์ฉ.
5๏ธโฃ flex-wrap
- ํ ์ค์ ๋ฐฐ์น๋๊ฒ ํ ๊ฒ์ธ์ง, ๊ฐ๋ฅํ ์์ญ ๋ด์์ ์ฌ๋ฌ ํ์ผ๋ก ๋๋์ด ํํํ ๊ฒ์ธ์ง ๊ฒฐ์ .
/* flex-container ์ flex-item ํ ์ค๋ก ๋ฐฐ์น */
flex-wrap : nowrap;
/* flex-container ์ต๋ ํญ์ flex-item ์ ํฌ๊ธฐ๊ฐ ๋ค ํ ๋น๋๋ฉด ๋ค์ ํ์ผ๋ก ๋๊ธฐ๊ธฐ */
flex-wrap : wrap;
/* flex-direction, flex-wrap ๋จ์ถ์์ฑ */
flex-flow: row wrap;
6๏ธโฃ flex-basis
- ๊ธฐ๋ณธ ๊ฐ์ auto.
- px, em, % ๋ฑ์ ๋จ์๋ก flex-item์ ์ด๊ธฐ ์ฌ์ด์ฆ ์ค์ , ๋ด๋ถ ์ฝํ ์ธ ์ ๋ฐ๋ผ ์ ์ฐํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค.
- flex-basis ๊ฐ์ด ์ ์ฉ๋์ด์๋ค๋ฉด row์ผ ๊ฒฝ์ฐ width ๊ฐ ๋ฌด์, column์ผ ๊ฒฝ์ฐ height ๊ฐ ๋ฌด์.
7๏ธโฃ flex-grow
- ์ปจํ ์ด๋ ๋ด๋ถ์ ๋น์จ ์ง์ ! ๊ธฐ๋ณธ ๊ฐ์ 0.
- ์ฌ๋ฐฑ์ด ์๊ฒผ์ ๋ ๊ฐ์ ์ฃผ๋ฉด ์ซ์๊ฐ ํฐ ๋น์จ๋๋ก ๋์ด๋๋ฉด์ ์์ญ์ ์ฑ์ด๋ค. ๊ฐ์ด 0์ธ ๊ฒฝ์ฐ ๋์ด๋์ง ์๋๋ค.
- flex-grow ์ ๊ฐ์ด flex-basis:auto ์ด๊ธฐ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ฉด. ์ ํํ๊ฒ 3๋ฑ๋ถ ๋๋ ๊ฒ ์๋๋ผ,
grow + basis ์ ์ฌ์ด์ฆ ์ฆ ์ปจํ ์ธ ์ ์ฌ์ด์ฆ๊ฐ ๋ํด์ ธ์ ์ถ๋ ฅ๋๋ค!
flex-basis ์ ์ฌ์ด์ฆ๋ฅผ ์ ๋ ฅํด์ auto๋ฅผ ํ์ด์ฃผ๋ฉด ์ปจํ ์ธ ์ ๊ด๊ณ ์์ด ๋์ผํ ๋น์จ์ ๊ฐ๊ฒ ๋๋ค.
8๏ธโฃ flex-shrink
- flex-grow์ ๋์ผํ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ๋๋๋ ๊ฐ๋ . ๊ธฐ๋ณธ ๊ฐ์ 1.
- flex-container ๊ธฐ๋ณธ ์ค์ ์์ flex-item ์ ๊ณ์ ๋ํ๋ฉด ์์์ ํญ์ด ์ค์ด๋ ๋ค. flex-shrink : 1 ์ด ๊ธฐ๋ณธ ๊ฐ์ด๊ธฐ ๋๋ฌธ.
- flex-shrink : 0; ์ ์ค์ ํ๊ณ flex-basis ์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด basis์ ์ ๋ ฅํ ์ฌ์ด์ฆ๋ก flex-item ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋๋ค.
- flex-item ์๋ min-width:auto ๊ฐ ๊ฐ์ ๋๋ค! flex-shrink:1 ๊ธฐ๋ณธ ์์ฑ์ผ๋ก ์์ ํญ์ ์ค์ฌ์ ๋น์จ์ ๋ง์ถ์ง๋ง ์์ํฌ๊ธฐ๊ฐ ์ต์ ํญ๋ณด๋ค ํฐ ๊ฒฝ์ฐ container ์์ ์์๊ฐ ํ์ด๋์ค๊ฑฐ๋, flex-basis ์ ์ ๋ ฅํ ๊ฐ์ด ์ ์ฉ๋์ง ์๋๋ค. ์ด๋ด ๋ flex-item ์ min-width:0; ์ ์ ์ฉํด์ค์ผํ๋ค!
8๏ธโฃ flex ๋จ์ถ์์ฑ
- flex : flex-grow flex-shrink flex-basis ์กฐํฉ์ ๋จ์ถ์์ฑ ์ฌ์ฉ ๊ฐ๋ฅ!
/* flex : flex-grow flex-shrink flex-basis */
flex: 1 1 100px;
๐ฉ๐ป๐ป ์์ฝ!
- ๊ธฐ์กด CSS๋ ์ฌ์ด์ฆ์ ๊ณ ์ ๊ฐ์ด๋ ๋น์จ ๋ฑ์ ์ง์ ์์ฑํด์ผ ํ์ง๋ง flex๋ฅผ ์ฌ์ฉํ๋ฉด ํ๊ณผ ์ด์ ์ค๊ฐ๋ฉฐ ์ ์ฐํ๊ฒ ๋ฆฌ์ฌ์ด์ง ๊ฐ๋ฅ!
- flex-direction ์ ํตํด ๋ฐฉํฅ ์ง์ ํ๊ณ justify-content align-items ๋ก ์์๋ฅผ ์ ๋ ฌ
- flex-wrap ์ ์ด์ฉํด์ ํ ์ค์ ๋ชจ๋ ์์๋ฅผ ๋ฐฐ์นํ ์ ์๋ค. ๋ฐ์ํ์ ๊ตฌํํ ๋ ์ ์ฉ.
- flex-shrink ๋ ์์๋ฅผ ์ถ์์์ผ์ ๋น์จ ์ ๋ ฌ, flex-grow ๋ ์์๋ฅผ ํ๋์์ผ์ ๋น์จ ์ ๋ ฌ.
- flex-grow flex-shrink flex-basis ๋ฅผ ์ฌ์ฉํ ๋๋ ๊ธฐ๋ณธ ๊ฐ์ ์ด๋ป๊ฒ ์ ์ดํ๋์ง๊ฐ ๊ด๊ฑด. ์์ธํ ๋ด์ฉ์ ๋ณธ๋ฌธ ์ฐธ๊ณ .
- flex-basis ๋ ์์ดํ ์ ์ฌ์ด์ฆ ์ค์ ! flex-shrink ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ ๋ ฅ๋ ์ฌ์ด์ฆ๋ ๊ณ ์ ๋๊ณ , ๋๋จธ์ง ์์ญ๋ง ํ๋,์ถ์! ๐
- flex ์์ ๋ฅผ ๊ตฌํํด๋์ ํ๋ฉด์ ๋ณด๊ณ ์ถ๋ค๋ฉด ๐ git pages์์ ํ์ธ ๊ฐ๋ฅ :)
๋ฐ์ํ