Layout
์นํ์ด์ง์ ํฌํจ๋๋ ์์๋ค์ ์ด๋ป๊ฒ ์ทจํฉํ๊ณ ๊ทธ๊ฒ๋ค์ด ์ด๋ ์์น์ ๋์ผ ๊ฒ์ธ์ง๋ฅผ ์ ์ดํ๋ค.
1 float
ํ ์์(element)๊ฐ ์ ์ ํ๋ฆ์ผ๋ก๋ถํฐ ๋น ์ ธ, ํ
์คํธ ๋ฐ ์ธ๋ผ์ธ ์์๊ฐ ๊ทธ ์ฃผ์๋ฅผ ๊ฐ์ธ ์๊ธฐ ์ปจํ
์ด๋์ ์ข, ์ฐ์ธก์ ๋ฐ๋ผ ๋ฐฐ์น๋์ด์ผ ํจ์ ์ง์ ํ๋ค.
1.1 ํน์ง
-
float:left
์ผ์ชฝ์ผ๋ก ๋ถ๊ฒ ๋๊ณ , ๋ฐ๋ก inline์ ์ค์ ์ํด๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ
์คํธ๊ฐ ๊ฐ์ธ๊ฒ ๋๋ค.
-
flexbox ๋ฐ ๊ทธ๋ฆฌ๋ ๋ ์ด์์๊ณผ ๊ฐ์ ๊ธฐ์ ๋ก ์ธํด ๋ ๊ฑฐ์ ๋ ์ด์์ ๊ธฐ์ ๋ก ๋ถ๋ฅ๋จ์ผ๋ก์จ, ์๋ ๊ทธ๋ฆผ ์ฉ๋๋ก๋ง ํ์ฉ๋๊ณ ์๋ค.
1.2 clearfix
- float ์์์ ๋ค๋ฅธ ํ
์คํธ๊ฐ์๋ block ์์๊ฐ์ ๋ ์ด์์ ๊นจ์ง์ ๋ง๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค.
2 flexbox
์ผ๋ช
flexbox๋ผ ๋ถ๋ฆฌ๋ Flexible Box module์ flexbox ์ธํฐํ์ด์ค ๋ด์ ์์ดํ
๊ฐ ๊ณต๊ฐ ๋ฐฐ๋ถ๊ณผ ๊ฐ๋ ฅํ ์ ๋ ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํ 1์ฐจ์ ๋ ์ด์์ ๋ชจ๋ธ๋ก ์ค๊ณ๋์๋ค.
์นํ์ด์ง์ ์ปจํ
์ด๋์ ์์ดํ
์ ํญ๊ณผ ๋์ด ๋๋ ์์๋ฅผ ๋ณ๊ฒฝํด์ ์นํ์ด์ง์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์ต๋ํ ์ฑ์ฐ๊ณ ์ด๋ฅผ ๋๋ฐ์ด์ค ์ข
๋ฅ์ ๋ฐ๋ผ ์ ์ฐํ๊ฒ ๋ฐ์ํ๋๋ก ํ๋ ๊ฐ๋
2.1 ๊ฐ๋
- ์์
- flex container
- flex items
- ์ถ
- main axis (์ฃผ์ถ)
- cross axis (๊ต์ฐจ์ถ)
2.2 flex container
- flexbox ๋ ์ด์์์ ํ์ฑํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ชจ๋ธ
- flexbox๊ฐ ๋์ฌ์๋ ์์ญ
- flex ์ปจํ
์ด๋๋ฅด ์์ฑํ๋ ค๋ฉด ์์ญ ๋ด์ ์ปจํ
์ด๋ ์์์
display
๊ฐ์ flex
ํน์ inline-flex
๋ก ์ค์
- flex ์ปจํ
์ด๋๋ฅผ ์ ์ธ์ ์๋์ ๊ฐ์ด ๊ธฐ๋ณธ ๊ฐ์ด ์ง์
- item: row
- item์ mainstart์์ ์์
- item์ ๊ต์ฐจ์ถ์ ํฌ๊ธฐ๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ๋์ด๋จ (stretch)
- flex-wrap: nowrap (item์ด container๋ฐ์ผ๋ก ๋์ด๊ฐ)
2.3 flex-direction
์์ด๋ ๋ฐฉํฅ ์ค์ (main-axis ์ ๋ฐฉํฅ๋ง ๋ฐ๋. flex ๋ single-direction layout concept ์ด๊ธฐ ๋๋ฌธ)
- row (๊ธฐ๋ณธ๊ฐ)
- ๊ฐ๋ก๋ก ์์๊ฐ ์์
- row ๋ ์ฃผ์ถ์ ๋ฐฉํฅ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๋ฅด๊ฒ ํ๋ค.
- row-reverse
- column
- ์ธ๋ก๋ก ์์๊ฐ ์์
- column ์ ์ฃผ์ถ์ ๋ฐฉํฅ์ ์์์ ์๋๋ก ํ๋ฅด๊ฒ ํ๋ค.
- column-reverse
2.4 flex-wrap
item๋ค์ด ๊ฐ์ ๋ก ํ ์ค์ ๋ฐฐ์น ๋๊ฒ ํ ๊ฒ์ธ์ง ์ฌ๋ถ ์ค์
- nowrap (๊ธฐ๋ณธ ๊ฐ)
- ๋ชจ๋ ์์ดํ
๋ค ํ ์ค์ ๋ํ๋ด๋ ค๊ณ ํจ (๊ทธ๋์ ์๋ฆฌ๊ฐ ์์ด๋ ํ์ด๋์ด)
- wrap : ๋์น๋ฉด ๊ทธ ๋ค์ ์ค๋ก
- wrap-reverse : ๋์น๋ฉด ๊ทธ ์์ค๋ก (์ญ์)
2.5 justify-content
main axis ์ ๋ ฌ
flex-direction: row
๊ธฐ์ค์ผ๋ก ์์ฑ๋จ
- flex-start (๊ธฐ๋ณธ ๊ฐ)
- ์์ ์ง์ ์์ ์์(์ผ์ชฝ โ ์ค๋ฅธ์ชฝ)
- flex-end
- ์์ด๋ ๋ฐฉํฅ์ด ๋ฐ๋ (
flex-direction: row-reverse
์๋ ๋ค๋ฅด๋ค. ์์ดํ
์ ์์๋ ๊ทธ๋๋ก ์ ๋ ฌ๋ง ์ฐ์ธก์ ๋๋ ๊ฒ.)
- center
- space-between
- ์ข์ฐ ์ ๋ ฌ (item ๋ค ๊ฐ๊ฒฉ ๋์ผ)
- space-around
- ๊ท ๋ฑ ์ข์ฐ ์ ๋ ฌ (๋ด๋ถ ์์ ์ฌ๋ฐฑ์ ์ธ๊ณฝ ์ฌ๋ฐฑ์ 2๋ฐฐ)
- space-evenly
- ๊ท ๋ฑ ์ ๋ ฌ (๋ด๋ถ ์์ ์ฌ๋ฐฑ๊ณผ ์ธ๊ฐ ์ฌ๋ฐฑ ๋ชจ๋ ๋์ผ)
2.6 align-items
cross axis ์ฌ๋ฌ ์ค ์ ๋ ฌ
flex-direction: row
๊ธฐ์ค์ผ๋ก ์์ฑ๋จ
- stretch (๊ธฐ๋ณธ ๊ฐ)
- ์ปจํ
์ด๋๋ฅผ ๊ฐ๋ ์ฑ์
- flex-start
- flex-end
- center
- baseline
- item ๋ด๋ถ์ text์ ๊ธฐ์ค์ ์ ๋ง์ถค
2.7 align-self
align-items ์ ๋์ผ (๋จ, ๊ฐ๋ณ item ์ ์ ์ฉ)
- auto (๊ธฐ๋ณธ ๊ฐ)
- flex-start
- flex-end
- center
- baseline
- stretch
- ๋ถ๋ชจ ์ปจํ
์ด๋์ ์๋์ผ๋ก ๋ง์ถฐ์ ๋์ด๋๋ค. (Stretch 'auto'-sized items to fit the container)
2.8 order
- ๊ธฐ๋ณธ ๊ฐ : 0
- ์์ ์ซ์ ์ผ์๋ก ์(์ผ์ชฝ)์ผ๋ก ์ด๋.
2.9 flex-grow
- ๊ธฐ๋ณธ ๊ฐ : 0
- ์ฃผ์ถ์์ ๋จ๋ ๊ณต๊ฐ์ ํญ๋ชฉ๋ค์๊ฒ ๋ถ๋ฐฐํ๋ ๋ฐฉ๋ฒ
- ๊ฐ ์์ดํ
์ ์๋์ ๋น์จ์ ์ ํ๋ ๊ฒ์ด ์๋
- ์์๋ ๋ถ๊ฐ๋ฅ