Normal flow (์ผ๋ฐ์ ์ธ ํ๋ฆ์ผ๋ก ๋ฐฐ์น๋๋ ๊ฒฝ์ฐ)
Normal flow๋ ์์ฐจ์ ์ผ๋ก ๋ฐ์ค๊ฐ ๋ฐฐ์น๊ฐ ๋๋ ๊ฒฝ์ฐ๋ค
Normal flow์์ ๋ฐ์ค๋ค์ formatting context๋ฅผ ๋ฐ๋ฆ ๋๋ค. CSS 2.2 ์์๋ table, block, inline์ด ํด๋น๋๋ค
๋ธ๋ก ๋ ๋ฒจ์ ๋ฐ์ค๋ block formatting์ ์ํ๊ณ
์ธ๋ผ์ธ ๋ ๋ฒจ์ ๋ฐ์ค๋ inline formatting์ ์ํ๊ณ
table formatting์ https://www.w3.org/TR/CSS22/tables.html ์ฌ๊ธฐ์ ์์ฑ๋์ด ์๋ค
Block formatting context
float, position์ด absolute์ธ ์์, ๋ธ๋ก ๋ฐ์ค๋ ์๋์ง๋ง inline-block, table-cell, table-caption๊ณผ ๊ฐ์ ๋ธ๋ก ์ปจํ ์ด๋, 'visible'์ด ์๋ 'overflow' ๋ธ๋ก ๋ฐ์ค(๋ทฐํฌํธ๋ก ์ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ )๋ ์๋ก์ด block formatting context๋ฅผ ๋ง๋ ๋ค
๋ฐ์ค๋ ํฌํจ ๋ธ๋ก(containing block)์ ๋งจ ์์์ ์์ํด์ ์ธ๋ก๋ก ํ๋์ฉ ๋ฐฐ์น๋ฉ๋๋ค
๋ ๋ฐ์ค์ ๊ฐ๊ฒฉ์ margin์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค
margin์ด ๋ง๋ฟ์ ๊ฒฝ์ฐ ๋ณํฉ๋ฉ๋๋ค..?
Inline formatting context
๋ธ๋ก ๋ ๋ฒจ์ ๋ฐ์ค๋ฅผ ํฌํจํ์ง ์๋ ๋ธ๋ก ์ปจํ ์ด๋์ ์ํด ๋ง๋ค์ด์ง๋ค
๋ฐ์ค๋ ํฌํจ ๋ธ๋ก(containing block)์ ๋งจ ์์์ ์์ํด์ ๊ฐ๋ก๋ก ํ๋์ฉ ๋ฐฐ์น๋๋ค
margin, border, padding์ ๋ฐ์ค์ฌ์ด์์ ์กด์ค๋๋ค ใ ใ ๋ญ๋ง์ด์ผ
๋ฐ์ค๋ ์ธ๋ก๋ก ์ ๋ ฌ ๋ฉ๋๋ค: bottom ๋๋ top์ด ์ ๋ ฌ๋๊ฑฐ๋ ์์ ์๋ ํ ์คํธ์ ๋ฒ ์ด์ค๋ผ์ธ์ด ์ ๋ ฌ๋๋ ๊ฒฝ์ฐ์
๋ผ์ธ์ ๋ง๋๋ ๋ฐ์ค๋ฅผ ํฌํจํ๋ ์ง์ฌ๊ฐํ ๊ณต๊ฐ์ line box๋ผ๊ณ ๋ถ๋ฅธ๋ค
line box์ ๋์ด๋ ํฌํจ ๋ธ๋ก(containing block)๊ณผ float์ ์กด์ฌ์ ์ํด ๊ฒฐ์ ๋๋ค
line box์ ๋์ด๋ line height calculations ์ ์๋ ๊ท์น์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค
line box๋ ํฌํจํ๊ณ ์๋ ๋ชจ๋ ๋ฐ์ค๋ค๋ณด๋ค ์ถฉ๋ถํ ๋๋ค. ํ์ง๋ง line box๊ฐ ํฌํจํ๊ณ ์๋ ๊ฐ์ฅ ํฐ ๋ฐ์ค๋ณด๋ค ๋ ํฐ ๊ฒฝ์ฐ์
Floats
๋จผ์ normal flow์ ๋ฐ๋ผ ๋ฐ์ค๊ฐ ๋ฐฐ์น๋ฉ๋๋ค. ๊ทธ ํ ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ค.
float์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ํน์ฑ์ ์ฝํ ์ธ ๋ ํ๋ฅด๋ฏ ๋ฐฐ์น๋ฉ๋๋ค
clear๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ํน์ฑ์ ํด์ ํ ์ ์์ต๋๋ค
์๋ float์ ์ฉ๋๋ ๊ธ๊ณผ ์ด๋ฏธ์ง๋ฅผ ํจ๊ป ๋ฐฐ์นํ์ ๋ ์ด๋ฏธ์ง ์์ ๊ธ์ด ํ๋ฅด๊ฒ .. ํ๊ธฐ ์ํด ์ฌ์ฉ๋์๋ ๋ฐฉ์์ด๋ค
์๋ฅผ ๋ค์ด ๋นจ๊ฐ์ ๋ฐ์ค๊ฐ float:left๊ฐ ๋์๋ค๊ณ ํ์
๋นจ๊ฐ์ ๋ฐ์ค๊ฐ ์๋ก ๋จ๊ฒ ๋๊ณ ๊ทธ ์๋๋ฅผ ์ด๋ก์ ๋ฐ์ค๊ฐ ์ฑ์ฐ๊ฒ ๋๋ค
๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ ๋นจ๊ฐ์ ์๋์ ์ด๋ก์ ๋ฐ์ค๊ฐ ๊ฐ์ถฐ์ง์ฑ๋ก ๋ณด๊ฒ ๋๋ค
๊ทธ๋ ๋ค๋ฉด ์ด๋ก์ ๋ฐ์ค๋ float: left๋ฅผ ๊ฐ๊ฒ ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
์ด๋ก์ ๋ฐ์ค๋ ๋นจ๊ฐ์ ๋ฐ์ค ์์ผ๋ก ์ด๋ํ๊ฒ ๋๊ณ
์๋ ์ด๋ก์ ๋ฐ์ค ์๋ฆฌ๋ ํ๋์ ๋ฐ์ค๊ฐ ์ฑ์ฐ๊ฒ ๋๋ค
clear ํ๋กํผํฐ๋ฅผ ์ ์ฉํด๋ณด์
clear๋ฅผ ์ฌ์ฉํ๋ฉด float ์์ฑ์ ํด์ ๋๋ค
๋ชจ๋ ๋ฐ์ค๋ฅผ float: left ๋ก ์ค์ ํด์ฃผ๊ณ ํ๋์ ๋ฐ์ค์ clear: left๋ฅผ ์ ์ฉํ๋ฉด
๋ ธ๋์ ๋ฐ์ค์๋ clear: left๋ฅผ ์ ์ฉํ๋ฉด
float์ ์ฌ์ฉํ๋ฉด ์์ ์ฒ๋ผ ๋ฐ์ค๊ฐ ๋จ๊ฒ ๋๋ฏ๋ก ๋ถ๋ชจ ์์์ ๋์ด๊ฐ ๋ฌด์๋๋ค
๋ถ๋ชจ ์์์ ๋์ด๋ฅผ ์ค์ ํ๊ณ ์ถ์ ๋์๋?
1. ๋ถ๋ชจ ์์ overflow:hidden
overflow hidden์ ๋ฒ์ด๋๋ ๋ถ๋ถ์ ๋ณด์ด์ง ์๊ฒ ํ๋ค. ์ฆ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ํฌ๊ธฐ๋งํผ๋ง ๋ณด์ฌ์ค๋ค. ๋ถ๋ชจ ์์ ๋ด๋ถ์ ์๋ ์ปจํ ์ธ ์ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ถ๋ชจ ์์์ ๋์ด๊ฐ ์ค์ ๋๋ค
2. ๋ถ๋ชจ ์์ flow-root
flow-root๋ formatting ๋ฃจํธ๊ฐ ์ด๋์๋์ง ์ ์ํจ์ผ๋ก์จ ์๋ก์ด block formatting context๋ฅผ ๋ง๋๋ ๋ธ๋ก ์์ ๋ฐ์ค๋ฅผ ๋ง๋ ๋ค -> ใ ใ ๋ญ์๋ฆฌ์..
Absolute
๋ฐ์ค๋ normal flow์์ ์์ ํ ๋ฒ์ด๋๊ณ ์์ ์ ํฌํจ ๋ธ๋ก์ ๊ธฐ์ค์ผ๋ก top, right, bottom, left ์์ฑ์ ๋ฐ๋ผ ์์ง์ ๋๋ค
float, absolute, root ์์์ธ ๊ฒฝ์ฐ, out of flow ๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค
out of flow๊ฐ ์๋ ๊ฒฝ์ฐ์๋ in-flow๋ผ๊ณ ๋ถ๋ฆ ๋๋ค
1. display: 'none'์ธ ๊ฒฝ์ฐ
- position: ์ ์ฉ๋์ง ์๋๋ค
- float: ์ ์ฉ๋์ง ์๋๋ค.
position๊ณผ float ์์ฑ์ display๋ณด๋ค ์ฐ์ ์ด์ง๋ง ์์ธ์ ์ผ๋ก display: 'none'์ด๋ฉด position๊ณผ float์ด ์ ์ฉ๋์ง ์๋๋ค
๋ฐ์ค ์์ฒด๊ฐ ๋ง๋ค์ด์ง์ง ์๊ธฐ ๋๋ฌธ์ด๋ค
2. position: 'absolute' or position: 'fixed'์ธ ๊ฒฝ์ฐ
- float: ์ด๋ค ๊ฐ์ ์ค์ ํด๋ 'none'์ด ๋๋ค
- display: ์๋์ ํ์ ๋ฐ๋ผ ์ค์ ๋๋ค
๋ฐ์ค๋ ์ ๋์ ์์น๋ก ๋ฐฐ์น๋๋ค
๋ฐ์ค์ ์์น๋ ์์ ์ ํฌํจ ๋ธ๋ก์ ๊ธฐ์ค์ผ๋ก top, right, bottom, left ์์ฑ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค
3. float์ด 'none'์ด ์๋ ๊ฐ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ
- display: ์๋ ํ์ ๋ฐ๋ผ ์ค์ ๋๋ค
์ง์ ๊ฐ | ๊ณ์ฐ ๊ฐ |
inline-table | table |
inline table-row-group table-column table-column-group table-header-group table-footer-group table-row table-cell table-caption inline-block |
block |
๊ธฐ์ฐจ | ์ง์ ๋ ๊ฐ๊ณผ ๋์ผ |
๋ฐ์ค๊ฐ ๋จ๊ฒ ๋๋ค
4. ์์๊ฐ root ์์์ผ ๊ฒฝ์ฐ
- display: ์์ ํ์ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค
5. ๋๋จธ์ง์ ๊ฒฝ์ฐ
- display: ์ง์ ๋ ๊ฐ์ ๋ฐ๋ผ ์ค์ ๋๋ค
์ฐธ๊ณ ์๋ฃ http://blog.wystan.net/2009/01/12/relationships-between-position-float-display
์ถ์ฒ https://youtu.be/xara4Z1b18I
'๐ฉโ๐ค ํ๋ก ํธ์๋ > css' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] Negative margin (์์ ๋ง์ง) (0) | 2022.07.14 |
---|