Box Model
Last updated
Last updated
์น ๋ฌธ์์ ๋ธ๋ก ๋ ๋ฒจ ์์๋ ๋ชจ๋ Box ํํ์ ์์ญ์ ๊ฐ์ง๊ณ ์์. ์คํ์ผ ์ํธ์์ ์ด๋ ๊ฒ Box ํํ์ธ ์์๋ฅผ ๋ฐ์ค ๋ชจ๋ธ ์์๋ผ๊ณ ํจ. ์ด Box๋ ์ฝํ ์ธ (Content), ํจํ (Padding), ํ ๋๋ฆฌ(Border), ๋ง์ง(Margin)๋ก ๊ตฌ์ฑ๋จ.
Box Model์ ์ดํด๋ ์๋์ 4๊ฐ์ง ๋ช ์นญ์ ์ดํดํ๋๋ฐ์ ๋ถํฐ ์์ํ๋ค.
Content
์์์ ํ ์คํธ๋ ์ด๋ฏธ์ง ๋ฑ์ ์ค์ ๋ด์ฉ์ด ์์นํ๋ ์์ญ, width, height ํ๋กํผํฐ๋ฅผ ๊ฐ๋๋ค.
Padding
ํ ๋๋ฆฌ(Border) ์์ชฝ์ ์์นํ๋ ์์์ ๋ด๋ถ ์์ญ์ ์ฌ๋ฐฑ, padding ํ๋กํผํฐ ๊ฐ์ ํจ๋ฉ ์์ญ์ ๋๊นจ๋ฅผ ์๋ฏธํ๋ฉฐ ๊ธฐ๋ณธ์์ ํฌ๋ช (transparent), ์์์ ์ ์ฉ๋ ๋ฐฐ๊ฒฝ์ ์ปฌ๋ฌ, ์ด๋ฏธ์ง๋ ํจ๋ฉ ์์ญ๊น์ง ์ ์ฉ
Border
ํ ๋๋ฆฌ ์์ญ์ผ๋ก border ํ๋กํผํฐ ๊ฐ์ ํ ๋๋ฆฌ์ ๋๊ป๋ฅผ ์๋ฏธ
Margin
ํ ๋๋ฆฌ(Border) ๋ฐ๊นฅ์ ์์นํ๋ ์์์ ์ธ๋ถ ์ฌ๋ฐฑ ์์ญ, margin ํ๋กํผํฐ ๊ฐ์ ๋ง์ง ์์ญ์ ๋๊ป๋ฅผ ์๋ฏธ, ๊ธฐ๋ณธ์ ์ผ๋ก ํฌ๋ช (transparent)ํ๋ฉฐ ๋ฐฐ๊ฒฝ์์ ์ง์ ํ ์ ์์
์น๋์์ธ์ ์ฝํ ์ธ ๋ฅผ ๋ด์ ๋ฐ์ค ๋ชจ๋ธ์ ์ ์ํ๊ณ CSS ํ๋กํผํฐ๋ฅผ ํตํด ์คํ์ผ(๋ฐฐ๊ฒฝ, ํฐํธ์ ํ ์คํธ ๋ฑ)๊ณผ ์์น ๋ฐ ์ ๋ ฌ์ ์ง์ ํ๋ ๊ฒ
๋ฐ์ค ๋ชจ๋ธ์์ ์ฝํ
์ธ ์์ญ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ ๋ ๋๋น๋ width, ๋์ด๋ height ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํจ, ์ฝํ
์ธ ์ ์์ญ์ ๋์์ ํ๋ ์ด์ ๋ box-sizing ํ๋กํผํฐ
์ ๊ธฐ๋ณธ๊ฐ์ธ content-box๊ฐ ์ ์ฉ๋์๊ธฐ ๋๋ฌธ, box-sizing ํ๋กํผํฐ
์ border-box๋ฅผ ์ ์ฉํ๋ฉด ์ฝํ
์ธ ์์ญ, padding, border๊ฐ ํฌํจ๋ ์์ญ์ width / height ํ๋กํผํฐ์ ๋์์ผ๋ก ์ง์ ํ ์ ์์.
width์ height์ ์์ฑ๊ฐ
<ํฌ๊ธฐ>
๋๋น๊ฐ ๋์ด์ ๊ฐ์ px์ด๋ em ๋จ์๋ก ์ง์
<๋ฐฑ๋ถ์จ>
๋ฐ์ค ๋ชจ๋ธ์ ํฌํจํ๋ ๋ถ๋ชจ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋น๊ฐ์ด๋ ๋์๊ฐ์ ๋ฐฑ๋ถ์จ(%)๋ก ์ง์
auto
๋ฐ์ค ๋ชจ๋ธ์ ๋๋น๊ฐ๊ณผ ๋์๊ฐ์ด ์ฝํ ์ธ ์ ์์ ๋ฐ๋ผ ์๋์ผ๋ก ๊ฒฐ์ , ๊ธฐ๋ณธ๊ฐ
๋ง์ผ width์ height๋ก ์ง์ ํ ์ฝํ
์ธ ์์ญ๋ณด๋ค ์ค์ ์ฝํ
์ธ ๊ฐ ํฌ๋ฉด ์ฝํ
์ธ ์์ญ์ ๋์น๊ฒ ๋๋ค. overflow:hidden;
์ ์ง์ ํ๋ฉด ๋์น ์ฝํ
์ธ ๋ฅผ ๊ฐ์ถ ์ ์๋ค.
width์ height ํ๋กํผํฐ๋ฅผ ๋น๋กฏํ ๋ชจ๋ ๋ฐ์ค๋ชจ๋ธ ๊ด๋ จ ํ๋กํผํฐ(margin, padding, border, box-sizing ๋ฑ)๋ ์์๋์ง ์๋๋ค.
๋ฐ์ค ๋ชจ๋ธ์ ์ํ์ข์ฐ 4๊ฐ์ ๋ฐฉํฅ์ด ์์ด์ ํ ๋๋ฆฌ๋ ๋ง์ง, ํจ๋ฉ ๋ฑ์ ์ง์ ํ ๋ ํ๊บผ๋ฒ์ ๋๊ฐ์ด ์ง์ ํ๊ฑฐ๋, ๋ชจ๋ ๋ค๋ฅด๊ฒ ์ง์ ํ ์ ์์.
margin
, padding
์ -top, -right, -bottom, -left 4๋ฐฉํฅ์ ํ๋กํผํฐ๋ฅผ ๊ฐ๊ฐ์ง์ ํ์ง ์๊ณ ํ ๋ฒ์ ์ง์ ํ ์ ์์.
4๊ฐ์ ๊ฐ์ ์ง์ ํ ๋ - margin: 25px 50px 75px 100px;
์์๋๋ก top, right, bottom, left
3๊ฐ์ ๊ฐ์ ์ง์ ํ ๋ - margin: 25px 50px 75px;
์์๋๋ก top, right/left, bottom
2๊ฐ์ ๊ฐ์ ์ง์ ํ ๋ - margin: 25px 50px;
์์๋๋ก top/bottom, right/left
1๊ฐ์ ๊ฐ์ ์ง์ ํ ๋ - margin: 25px;
top/bottom/right/left๋ฅผ ๋ชจ๋ ๊ฐ์ ๊ฐ์ผ๋ก ์ง์
border-style
ํ๋กํผํฐ๋ ํ
๋๋ฆฌ์ ์ ์ ์คํ์ผ์ ์ง์ , border-style
4-1 border-style ํ๋กํผํฐ์ ๊ธฐ๋ณธ๊ฐ์ none์ด๋ฏ๋ก ์์ฑ๊ฐ์ ๋ฐ๋ก ์ง์ ํ์ง ์์ผ๋ฉด ํ
๋๋ฆฌ ์์์ด๋ ๋๊ป๋ฅผ ์ง์ ํ๋๋ ํ๋ฉด์ ํ์๋์ง ์์.
border-width
ํ๋กํผํฐ๋ ํ
๋๋ฆฌ์ ๋๊ป๋ฅผ ์ง์ , ํ๋กํผํฐ ๊ฐ์ ๊ฐฏ์์ ๋ฐ๋ผ 4๊ฐ ๋ฐฉํฅ(top, right, left, bottom)์ ๋ํ์ฌ ์ง์ ์ด ๊ฐ๋ฅ(margin, padding๊ณผ ๊ฐ์)
border-color
ํ๋กํผํฐ๋ ํ
๋๋ฆฌ์ ์์์ ์ง์ , ํ๋กํผํฐ ๊ฐ์ ๊ฐฏ์์ ๋ฐ๋ผ 4๊ฐ ๋ฐฉํฅ(top, right, left, bottom)์ ๋ํ์ฌ ์ง์ ์ด ๊ฐ๋ฅ(margin, padding๊ณผ ๊ฐ์)
border-radius
ํ๋กํผํฐ๋ ํ
๋๋ฆฌ ๋ชจ์๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ํํํ๋๋ก ์ง์ , ํ๋กํผํฐ ๊ฐ์ ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ๋จ์(px, em๋ฑ)๊ณผ %๋ฅผ ์ฌ์ฉ, ๊ฐ๊ฐ์ ๋ชจ์๋ฆฌ์ border-radius ํ๋กํผํฐ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ง์ ํ ์๋ ์๊ณ 4๊ฐ์ ๋ชจ์๋ฆฌ๋ฅผ short-hand๋ก ํ๋ฒ์ ์ง์ ํ ์๋ ์์
๊ธฐ๋ณธํ border-radius: <ํฌ๊ธฐ> | <๋ฐฑ๋ถ์จ>
๋๊ฐ์ ๋ฐ์ง๋ฆ์ ์ง์ ํ์ฌ ํ์ํ ๋ฅ๊ทผ ๋ชจ์๋ฆฌ ์ค์ ํ๊ธฐ
border-radius ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํด์ ๊ผญ์ง์ ์ ํ์ ํํ๋ก ๋ง๋ค ์ ์๋ค. ํ๋์ ๊ฐ(๋ฐ์ง๋ฆ) ๋์ ํ์์ ๊ฐ๋ก ๋ฐ์ง๋ฆ๊ฐ๊ณผ ์ธ๋ก ๋ฐ์ง๋ฆ๊ฐ์ /๋ฅผ ํตํด ๊ตฌ๋ถํ์ฌ ๋ฃ๋๋ค.
๊ธฐ๋ณธํ border-radius: <๊ฐ๋ก ๋ฐ์ง๋ฆ> / <์ธ๋ก ๋ฐ์ง๋ฆ>
๊ธฐ๋ณธํ border-์์น-radius: <๊ฐ๋ก ๋ฐ์ง๋ฆ> / <์ธ๋ก ๋ฐ์ง๋ฆ>
border
ํ๋กํผํฐ๋ border-width
, border-style
, border-color
๋ฅผ ํ๋ฒ์ ์ค์ ํ๊ธฐ ์ํ shorthand ํ๋กํผํฐ์ด๋ค.
๊ธฐ๋ณธํ border: border-width border-style border-color
box-sizing
ํ๋กํผํฐ๋ width, height ํ๋กํผํฐ์ ๋์ ์์ญ์ ๋ณ๊ฒฝํ๋ค.
content-box
width, height ํ๋กํผํฐ ๊ฐ์ content ์์ญ์ ์๋ฏธ(๊ธฐ๋ณธ๊ฐ)
border-box
width, height ํ๋กํผํฐ ๊ฐ์ content ์์ญ, padding, border๊ฐ ํฌํจ๋ ๊ฐ์ ์๋ฏธ, CSS Layout์ ์ง๊ด์ ์ผ๋ก ์ฌ์ฉ
box-sizing ํ๋กํผํฐ๋ ์์๋์ง ์๋๋ค. ๋ฐ๋ผ์ box-sizing ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋๋ก ์ด๊ธฐํํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์ ์ํ๋ค.
margin, padding, border๋ ์ ๋ง ์น๋์์ธ์ ํ ๋ flex, grid๋ณด๋ค ๋ ๋ง์ด ์ฌ์ฉ์ ํ๋ ํ๋กํผํฐ๋ผ๊ณ ์๊ฐํ๋ค. ๊ทธ ๋งํผ ๋ง์ด ์ฌ์ฉํ์ผ๋ ํด๋น ๋ด์ฉ์ ๋ํด ์ต์ํด์ก์ง๋ง ์ด๋ฒ ์ฑํฐ๋ฅผ ์ ๋ฆฌํ๋ฉด์ ๋ชฐ๋๋ ๋ถ๋ถ๋ ๋ง์ด ์๊ฒ ๋์๋ค. ์ง๊ธ๊น์ง
border-radius: top-left top-right bottom-right bottom-left
๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ผ์ผํ ํ๋ํ๋ ๊ฐ๋ค์ ์ง์ ํ๋ค. ์์ผ๋ก๋ ํ ์ค๋ก ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ์ ํด์ผ๊ฒ ๋ค. ๋ํ ํ์ํ์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ด๋ฒ์ ์๋กญ๊ฒ ์๊ฒ ๋์๋ค. x์ขํ, y์ขํ์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐ์ง๋ฆ์ ์ฃผ์ด ํ์ํ์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ ๋ฉ์ง ์น๋์์ธ์ ํ ์ ์๋๋ก ํ์. box-sizing๊ฐ๋ ์ ๋ํด์๋ ์ง๊ธ๊น์ง๋ ๋ญ๊ฐ ๋ฐ์ค๊ฐ ์ด์ํ๋ฐ? ํ๋ฉด์ ์๋ฌด๋ฐ ์๊ฐ์์ดbox-sizing: border-box
์ฌ์ฉํด์๋ค. ํ์ง๋ง ๊ฐ๋ ์ ๋ํด์ ์ ํํ ํ์ ์ ํ๋ ์์ด ์์ํ ๊ธฐ๋ถ์ด ๋ค๊ณ ๋๊ตฐ๊ฐ์๊ฒ ๋ฐ์ค ๋ชจ๋ธ์ ๋ํด ์ค๋ช ํ ๋ ํ์ธต ๋ ์์ ๊ฐ์๊ฒ ๋๋ตํ ์ ์์๊ฑฐ ๊ฐ๋ค.๐ ์ฌ์ฉํ๋ css๋ง ๊ณ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ง์ ๊ฒ๋ค์ ๋ฐฐ์ฐ๊ณ ํ๋์ฉ ์ ์ฉํด๋ณด๋ฉด์ ๊ณต๋ถํ์
poiemaweb 2-4 ๋ฐ์ค ๋ชจ๋ธ ๋์ - HTML + CSS + ์๋ฐ์คํฌ๋ฆฝํธ ์น ํ์ค์ ์ ์
๐ 2022-07-12