10-2. CSS ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์ (flex-direction, flex-flow, flex-wrap, justify-content, align-content, align-self, align-items)
1. ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์
๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ๊ฐ ๋ฐ์ค๋ฅผ ์ํ๋ ์์น์ ๋ฐ๋ผ ๋ฐฐ์นํ๋ ๊ฒ์ด๋ค.
์ด๋ ์ฌ์ ๊ณต๊ฐ์ด ์๊ธฐ๋ฉด ๋๋น๋ ๋์ด๋ฅผ ์ ์ ํ๊ฒ ๋์ด๊ฑฐ๋ ์ค์ผ ์ ์๋ค.
1๏ธโฃ ํ๋ ์ค ์ปจํ ์ด๋ (๋ถ๋ชจ ๋ฐ์ค) : ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์์ ์ ์ฉํ ๋์์ ๋ฌถ๋ ์์์ด๋ค.
2๏ธโฃ ํ๋ ์ค ํญ๋ชฉ (์์ ๋ฐ์ค) : ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์์ ์ ์ฉํ ๋์์ด๋ค.
3๏ธโฃ ์ฃผ์ถ (main axis) : ํ๋ ์ค ์ปจํ ์ด๋ ์์์ ํ๋ ์ค ํญ๋ชฉ์ ๋ฐฐ์นํ๋ ๊ธฐ๋ณธ ๋ฐฉํฅ์ด๋ค. (๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ํ๋ฐฉํฅ์ผ๋ก ๋ฐฐ์นํ๋ค.)
4๏ธโฃ ๊ต์ฐจ์ถ (cross axis) : ์ฃผ์ถ๊ณผ ๊ต์ฐจํ๋ ๋ฐฉํฅ์ ๋งํ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ์๋๋ก ๋ฐฐ์นํ๋ค.
2. ํ๋ ์ค ๋ฐ์ค ํญ๋ชฉ์ ๋ฐฐ์นํ๋ ์์ฑ
justify-content : ์ฃผ์ถ ๋ฐฉํฅ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค.
align-items : ๊ต์ฐจ์ถ ๋ฐฉํฅ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค.
align-self : ๊ต์ฐจ์ถ์ ์๋ ๊ฐ๋ณ ํญ๋ชฉ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค.
align-content : ๊ต์ฐจ์ถ์์ ์ฌ๋ฌ ์ค๋ก ํ์๋ ํญ๋ชฉ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค.
1๏ธโฃ display
ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์์ ๋ง๋ค๋ ค๋ฉด ๋จผ์ ์น ์ฝํ ์ธ ๋ฅผ ํ๋ ์ค ์ปจํ ์ด๋๋ก ๋ฌถ์ด์ค์ผ ํ๋ค.
์ฆ, ๋ฐฐ์นํ ์น ์์๊ฐ ์๋ค๋ฉด ๊ทธ ์์๋ฅผ ๊ฐ์ธ๋ ๋ถ๋ชจ ์์๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ๋ถ๋ชจ ์์๋ฅผ ํ๋ ์ค ์ปจํ ์ด๋๋ก ๋ง๋ค์ด์ผ ํ๋ค.
flex : ์ปจํ ์ด๋ ์์ ํ๋ ์ค ํญ๋ชฉ์ ๋ธ๋ก ๋ผ๋ฒจ ์์๋ก ๋ฐฐ์นํ๋ค.
inline-flex : ์ปจํ ์ด๋ ์์ ํ๋ ์ค ํญ๋ชฉ์ ์ธ๋ผ์ธ ๋ผ๋ฒจ ์์๋ก ๋ฐฐ์นํ๋ค.
2๏ธโฃ flex-direction
flex-direction ์์ฑ์ ํ๋ ์ค ์ปจํ ์ด๋ ์์์ ํ๋ ์ค ํญ๋ชฉ์ ๋ฐฐ์นํ๋ ์ฃผ์ถ๊ณผ ๋ฐฉํฅ์ ์ง์ ํ๋ ์์ฑ์ด๋ค.
row : ์ฃผ์ถ์ ๊ฐ๋ก๋ก ์ง์ ํ๊ณ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐฐ์นํ๋ค.
row-reverse : ์ฃผ์ถ์ ๊ฐ๋ก๋ก ์ง์ ํ๊ณ ๋ฐ๋๋ก ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๋ฐฐ์นํ๋ค.
column : ์ฃผ์ถ์ ์ธ๋ก๋ก ์ง์ ํ๊ณ ์์ชฝ์์ ์๋์ชฝ์ผ๋ก ๋ฐฐ์นํ๋ค.
column-reverse : ์ฃผ์ถ์ ์ธ๋ก๋ก ์ง์ ํ๊ณ ์๋์ชฝ์์ ์์ชฝ์ผ๋ก ๋ฐฐ์นํ๋ค.
3๏ธโฃ flew-wrap
flex-wrap ์์ฑ์ ํ๋ ์ค ์ปจํ ์ด๋ ๋๋น๋ณด๋ค ๋ง์ ํ๋ ์ค ํญ๋ชฉ์ด ์์ ๊ฒฝ์ฐ ์ค์ ๋ฐ๊ฟ์ง ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ค.
no-wrap : ํ๋ ์ค ํญ๋ชฉ์ ํ ์ค์ ํ์ํ๋ค.
wrap : ํ๋ ์ค ํญ๋ชฉ์ ์ฌ๋ฌ ์ค์ ํ์ํ๋ค.
wrap-reverse : ํ๋ ์ค ํญ๋ชฉ์ ์ฌ๋ฌ ์ค์ ํ์ํ๋, ์์์ ๊ณผ ๋์ ์ด ๋ฐ๋๋ค.
4๏ธโฃ flex-flow
flex-flow ์์ฑ์ flex-direction ์์ฑ๊ณผ flex-wrap ์์ฑ์ ํ๊บผ๋ฒ์ ์ง์ ํ์ฌ ํ๋ ์ค ํญ๋ชฉ์ ๋ฐฐ์น ๋ฐฉํฅ์ ๊ฒฐ์ ํ๊ฑฐ๋ ์ค์ ๋ฐ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ row no-wrap ์ด๋ค.
5๏ธโฃ justify-content
justify-content ์์ฑ์ ์ฃผ์ถ์์ ํ๋ ์ค ํญ๋ชฉ ๊ฐ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ค.
flex-start : ์ฃผ์ถ์ ์์์ ์ ๋ง์ถฐ ๋ฐฐ์น
flex-end : ์ฃผ์ถ์ ๋์ ์ ๋ง์ถฐ ๋ฐฐ์น
center : ์ฃผ์ถ์ ์ค์์ ๋ง์ถฐ ๋ฐฐ์น
space-between : ์ฒซ ๋ฒ์งธ ํญ๋ชฉ๊ณผ ๋ ํญ๋ชฉ์ ์ฃผ์ถ์ ์์์ ๊ณผ ๋์ ์ ๋ฐฐ์นํ ํ ๋๋จธ์ง ํญ๋ชฉ์ ๊ทธ ์ฌ์ด์ ๊ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ์นํ๋ค.
space-around : ๋ชจ๋ ํญ๋ชฉ์ ์ฃผ์ถ์ ๊ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ์นํ๋ค.
6๏ธโฃ align-items
align-items ์์ฑ์ ๊ต์ฐจ์ถ์ ๊ธฐ์ค์ผ๋ก ํ๋ ์ค ํญ๋ชฉ์ ์ ๋ ฌํ๋ค.
flex-start : ๊ต์ฐจ์ถ์ ์์์ ์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
flex-end : ๊ต์ฐจ์ถ์ ๋์ ์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
center : ๊ต์ฐจ์ถ์ ์ค์์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
baseline : ๊ต์ฐจ์ถ์ ๋ฌธ์ ๊ธฐ์ค์ ์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
stretch : ํ๋ ์ค ํญ๋ชฉ์ ๋๋ ค ๊ต์ฐจ์ถ์ ๊ฐ๋ ์ฐจ๊ฒ ๋ฐฐ์นํ๋ค.
7๏ธโฃ align-self
align-self ์์ฑ์ ๊ต์ฐจ์ถ์ ๊ธฐ์ค์ผ๋ก ํ๋ ์ค ํญ๋ชฉ์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ์ง๋ง ๊ทธ์ค ํน์ ํญ๋ชฉ๋ง ์ง์ ํ๊ณ ์ถ๋ค๋ฉด align-self ์์ฑ์ ์ฌ์ฉํ๋ค.
8๏ธโฃ align-content
align-content ๋ ์ฃผ์ถ์์ ์ค ๋ฐ๋์ ์๊ฒจ์ ํ๋ ์ค ํญ๋ชฉ์ ์ฌ๋ฌ ์ค๋ก ํ์ํ ๋ align-content ์์ฑ์ ์ด์ฉํ๋ฉด ํ๋ ์ค ํญ๋ชฉ์ ๊ฐ๊ฒฉ์ ์ง์ ํ ์ ์๋ค.
flex-start : ๊ต์ฐจ์ถ์ ์์์ ์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
flex-end : ๊ต์ฐจ์ถ์ ๋์ ์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
center : ๊ต์ฐจ์ถ์ ์ค์์ ๋ง์ถฐ ๋ฐฐ์นํ๋ค.
space-between : ์ฒซ๋ฒ์งธ ํญ๋ชฉ๊ณผ ๋ ํญ๋ชฉ์ ๊ต์ฐจ์ถ์ ์์์ ๊ณผ ๋์ ์ ๋ง์ถ๊ณ ๋๋จธ์ง ํญ๋ชฉ์ ๊ทธ ์ฌ์ด์ ๊ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ์นํ๋ค.
space-around: ๋ชจ๋ ํญ๋ชฉ์ ๊ต์ฐจ์ถ์ ๊ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐฐ์นํ๋ค.
stretch : ํ๋ ์ค ํญ๋ชฉ์ ๋๋ ค์ ๊ต์ฐจ์ถ์ ๊ฐ๋ ์ฐจ๊ฒ ๋ฐฐ์นํ๋ค.
* ํญ์ ์ค์์ ํ์ํ๋ ๋ฐฉ๋ฒ