์ด๋ฏธ์ง ๊ฐ ์ฌ๋ฐฑ ์์ ๋ CSS ํ: margin, padding, line-height๋ฅผ ํ์ฉํ ๋ธ๋ก๊ทธ ์ด๋ฏธ์ง ์ต์ ํ
๋ธ๋ก๊ทธ ์ด๋ฏธ์ง ์ฌ์ด์ ๋ฏธ์ธํ ์ฌ๋ฐฑ์ ์ ๊ฑฐํ๋ CSS ํ์ ์๊ฐํฉ๋๋ค. margin๊ณผ padding ์กฐ์ ์ผ๋ก ์ธ๋ถ ๋ฐ ๋ด๋ถ ์ฌ๋ฐฑ์ ์ ์ดํ๊ณ , line-height: 0 ์์ฑ์ ์ฌ์ฉํ์ฌ span ์์๋ก ์ธํด ๋ฐ์ํ๋ ๋ฏธ์ธํ ์ด๋ฏธ์ง ์ฌ๋ฐฑ์ ์์ ํ ์์ ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์๋ดํฉ๋๋ค.
๋ธ๋ก๊ทธ ์ด๋ฏธ์ง ์ฌ๋ฐฑ์ ๊น๋ํ๊ฒ ์์ ๋ CSS ์์ฑ ํ์ฉ๋ฒ
๋ธ๋ก๊ทธ์ ์ด๋ฏธ์ง๋ฅผ ๋ง์ด ์ฌ๋ฆด ๋, ์ด๋ฏธ์ง ์ฌ์ด์ ์๋ ์์ฑ๋ ์ด๋ฏธ์ง ์ฌ๋ฐฑ์ ์ญ์ ํ๋ ค๋ฉด margin๊ณผ padding ์์ฑ์ ์กฐ์ ํด์ผ ํฉ๋๋ค. margin์ ์ธ๋ถ ์ฌ๋ฐฑ์, padding์ ๋ด๋ถ ์ฌ๋ฐฑ์ ์กฐ์ ํฉ๋๋ค. ํ์ง๋ง ์ฌ๋ฐฑ์ด ์ฌ์ ํ ๋จ์ ์๋ ๊ฒฝ์ฐ, span ์์์ line-height ์์ฑ์ ์กฐ์ ํ์ฌ ๋ฏธ์ธํ ์ฌ๋ฐฑ์ ์์จ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, line-height: 0์ ์ฌ์ฉํ๋ฉด span ์์์ ์ฌ๋ฐฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. CSS ์ฝ๋๋ฅผ ํตํด ์ฌ๋ฐฑ์ ์ํ๋ ๋๋ก ์กฐ์ ํ ์ ์์ต๋๋ค.
๋ธ๋ก๊ทธ์ ๊ธ์ ์์ฑ ์ ์ด๋ฏธ์ง๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ณผ์ ์์ ์ฌ๋ฌ ์ฅ์ ๊ฐ๋ณ์ ์ธ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฆฌ๋ค ๋ณด๋ฉด ์ด๋ฏธ์ง์ ์ด๋ฏธ์ง ์ฌ์ด์ ์ฌ๋ฐฑ์ด ์๋์ผ๋ก ์์ฑ๋๋ฉด์ ์ด๋ฏธ์ง๋ฅผ ๊ตฌ๋ถํ ์ ์๊ฒ ์์ฑ์ด ์ค์ ๋์ด ์์ต๋๋ค. ๋๋ก ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ์ฅ ์ฌ๋ฆฌ๋ค ๋ณด๋ฉด ์ด๋ฏธ์ง๋ค์ด ์ฌ๋ฐฑ ์์ด ๋ถ์ฌ์ ๋ณด์ฌ์ง๊ธฐ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ทธ๋ ์ด๋ฏธ์ง ์ฌ๋ฐฑ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ค๋ฅธ ์์๋ค๊ณผ์ ์ฌ๋ฐฑ์ ์กฐ์ ํด์ฃผ๋ ์์ฑ์ผ๋ก ์ฃผ๋ก margin๊ณผ padding ์์ฑ์ ์ฌ์ฉํฉ๋๋ค.
CSS๋ฅผ ํ์ฉํ ์ด๋ฏธ์ง ์ฌ๋ฐฑ ์กฐ์ ๋ฐฉ๋ฒ
1. ์ด๋ฏธ์ง ์ธ๋ถ ์ฌ๋ฐฑ ์กฐ์ : MARGIN (๋ง์ง)
margin์ CSS์์ ์ฃผ๋ก ์ธ๋ถ ์ฌ๋ฐฑ, ์ฆ ์์์ ํ ๋๋ฆฌ ๋ฐ๊นฅ ๊ณต๊ฐ์ ์กฐ์ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ์์๋ค๊ณผ์ ์ธ๋ถ์ ์ธ ๊ฐ๊ฒฉ์ ์ง์ ํด์ ๋ ์์๊ฐ ๋๋ฌด ๊ฐ๊น๊ฑฐ๋ ๋ฉ๋ฆฌ ๋จ์ด์ง ๊ฒฝ์ฐ ์ ๋นํ ๊ฐ์ ๋ฃ์ด์ ์กฐ์ ํ์๋ฉด ๋ฉ๋๋ค. margin ์์ฑ์ ์ธ์ ํ ๋ธ๋ก๋ค์ ๋ง์ง ์์ ์ค ํฐ ๋ง์ง์ด ์ ์ฉ๋๊ณ ์์ ๋ง์ง ๊ฐ์ ๋ฌด์๋๋ '๋ง์ง ์์(Margin Collapsing)' ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
์ฆ, ํ ๊ฐ์ ๋ธ๋ก๋ง์ผ๋ก ๋ง์ง ์์ฑ์ด ์ ์ฉ๋์ง ์์ ๊ฒฝ์ฐ๋ ๊ทธ์ ์ธ์ ํ ๋ค๋ฅธ ๋ธ๋ก์ ๋ง์ง์ ํ์ธํด์ผ ์ ํํ ์ ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง ์์์ margin: 0;์ ์ ์ฉํ๋ฉด ์ธ๋ถ ์ฌ๋ฐฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
.box {
margin-top: 10px; /* ์๋จ ์ฌ๋ฐฑ 10px */
margin-right: 15px; /* ์ค๋ฅธ์ชฝ ์ฌ๋ฐฑ 15px */
margin-bottom: 20px; /* ํ๋จ ์ฌ๋ฐฑ 20px */
margin-left: 25px; /* ์ผ์ชฝ ์ฌ๋ฐฑ 25px */
}
3. ์ด๋ฏธ์ง ๋ด๋ถ ์ฌ๋ฐฑ ์กฐ์ : PADDING (ํจ๋ฉ)
padding์ ์์์ ๋ด์ฉ๊ณผ ๊ทธ ์ธ๊ณฝ์ ํ ๋๋ฆฌ ์ฌ์ด์ ๊ณต๊ฐ์ ์กฐ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ๋ด๋ถ ์ฌ๋ฐฑ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ, ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ธ๋ ๋ถ๋ชจ ์์๋ ์ด๋ฏธ์ง ์์ฒด์ padding ๊ฐ์ 0์ผ๋ก ์ค์ ํ์ฌ ๋ด๋ถ ์ฌ๋ฐฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ํฝ์ (px), ํผ์ผํธ(%), em, rem ๋ฑ ๋ค์ํ ๋จ์๋ก ์ค์ ํ ์ ์์ต๋๋ค.
.box {
padding-top: 10px; /* ์๋จ ํจ๋ฉ 10px */
padding-right: 15px; /* ์ค๋ฅธ์ชฝ ํจ๋ฉ 15px */
padding-bottom: 20px; /* ํ๋จ ํจ๋ฉ 20px */
padding-left: 25px; /* ์ผ์ชฝ ํจ๋ฉ 25px */
}
MARGIN๊ณผ PADDING์ผ๋ก ๋๋ถ๋ถ์ ์ฌ๋ฐฑ์ ์กฐ์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋๋ก ๋ ์์ฑ์ ๋ชจ๋ 0์ผ๋ก ์ค์ ํ์์๋ ๋ถ๊ตฌํ๊ณ ์ฌ๋ฐฑ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฏธ์ธ ์ด๋ฏธ์ง ์ฌ๋ฐฑ ์ ๊ฑฐ: LINE-HEIGHT ์์ฑ ํ์ฉ
1. ์ด๋ฏธ์ง ์ฌ๋ฐฑ ์์กด ๋ฌธ์ : line-height์ ์ํฅ
๋ง์ง๊ณผ ํจ๋ฉ์ ๋ค ์ ์ฉํ๊ณ ๋์๋ ์ฌ๋ฐฑ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ ์ด๋ฏธ์ง๋ฅผ span ์์์ ๊ฐ์ด ์ธ๋ผ์ธ(inline) ์์๋ก ๊ฐ์ธ๊ณ ์๋ ๊ฒฝ์ฐ์ ์ฃผ๋ก ๋ฐ์ํฉ๋๋ค. ์ด๋ฏธ์ง๊ฐ ์ธ๋ผ์ธ ์์๋ก ์ฒ๋ฆฌ๋ ๋, ์ด๋ฏธ์ง ํ๋จ์ ํ ์คํธ์ ๊ธฐ์ค์ (Baseline)์ ๋ง์ถ๊ธฐ ์ํ ๋ฏธ์ธํ ๊ณต๊ฐ์ด ์๋์ผ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ ์์ฃผ ๋ฏธ์ธํ์ง๋ง span ์์ญ๋งํผ์ ๊ณต๊ฐ์ ์ฐจ์งํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ด ์ฌ๋ฐฑ์ผ๋ก ๋ณด์ฌ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๊ณต๊ฐ์ ์์ ํ ์ ๊ฑฐํ๊ธฐ ์ํด์๋ ํ ์คํธ ๋ผ์ธ์ ๋์ด๋ฅผ ์กฐ์ ํ๋ line-height ์์ฑ์ ํ์ฉํด์ผ ํฉ๋๋ค.
2. line-height: 0 ์ ์ฉ ์์
์ด ๊ฒฝ์ฐ๋ span ์์ ๋๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ธ๋ ๋ถ๋ชจ ์์์ line-height ์์ฑ์ ๋ถ์ฌํด์ ์ํ๋ ๋งํผ์ ์ฌ๋ฐฑ์ ์กฐ์ ํ ์ ์์ต๋๋ค. ์๋์ ๊ฐ์ ์ฝ๋๋ก ์์ฑ๋ ์ด๋ฏธ์ง๊ฐ ์์ ๊ฒฝ์ฐ๋ฅผ ์์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
์๋ ์ฝ๋์ ๊ฐ์ด ๊ฐ ๋ธ๋ก์ ํจ๋ฉ๊ณผ ๋ง์ง ์์ฑ์ ์ง์ ํ๊ณ ์ผ๋ถ ์ ์ฉ์ด ์ ๋๋ ๊ฒฝ์ฐ๋ span์ ๋ค๋ฅธ ์์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ์์ฑ์ ์ํ๋ ๊ฐ์ผ๋ก ๊ฐ์ ์ง์ ํ์๋ฉด ๋ฉ๋๋ค. ์๋๋ ์ฌ๋ฐฑ์ด ์๊ฒ ์ ์ฉํ ๊ฒฝ์ฐ์ ๋๋ค. ์ฃผ์ ํด๊ฒฐ์ฑ ์ ์ด๋ฏธ์ง ์์๋ฅผ ๋ธ๋ก ์์๋ก ๋ณ๊ฒฝํ๊ฑฐ๋(display: block;) ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ผ ์์์ line-height๋ฅผ 0์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
๋ฏธ์ธํ ์ด๋ฏธ์ง ์ฌ๋ฐฑ ์ ๊ฑฐ ๊ฒฐ๊ณผ
์๋ ์ด๋ฏธ์ง๋ line-height ์์ฑ์ 0์ผ๋ก ์กฐ์ ํ์ฌ ์ด๋ฏธ์ง ์ฌ์ด์ ๋ฏธ์ธํ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ๊ฒฐ๊ณผ์ ๋๋ค. ์ด๋ฏธ์ง๊ฐ ๋ฏธ์ธํ๊ฒ ๋จ์ด์ง ๋ฌธ์ ๋ฅผ ์ด CSS ์ฝ๋๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.

๋ธ๋ก๊ทธ ์ด๋ฏธ์ง ์ฌ์ด์ ์๋์ผ๋ก ์๊ธฐ๋ ์ฌ๋ฐฑ์ ์์ ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ด๋ฏธ์ง ์ฌ์ด์ ์ฌ๋ฐฑ์ ์ฃผ๋ก margin(์์ ์ธ๋ถ ์ฌ๋ฐฑ)๊ณผ padding(์์ ๋ด๋ถ ์ฌ๋ฐฑ) ์์ฑ์ 0์ผ๋ก ์ค์ ํ์ฌ ์กฐ์ ํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์๋ ์์ฑ๋ ์ฌ๋ฐฑ์ ์ด ๋ ์์ฑ ์กฐ์ ๋ง์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.
margin๊ณผ padding์ ๋ชจ๋ ์กฐ์ ํ๋๋ฐ๋ ์ด๋ฏธ์ง ์ฌ์ด์ ์ฌ๋ฐฑ์ด ๋จ๋ ๊ฒฝ์ฐ๋ ์ ๊ทธ๋ฐ๊ฐ์?
์ด๋ฏธ์ง๊ฐ span ๋๋ div ๊ฐ์ ์ธ๋ผ์ธ ์์๋ก ๊ฐ์ธ์ ธ ์๊ณ , ์ด๋ฏธ์ง ์์ฒด๊ฐ ์ธ๋ผ์ธ ์์์ผ ๋, ํฐํธ์ ๊ธฐ์ค์ (baseline)์ ๋ง์ถ๊ธฐ ์ํ line-height ๊ณต๊ฐ์ด ๋ฏธ์ธํ๊ฒ ๋จ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋๋ ์ด๋ฏธ์ง ์์๋ ๋ถ๋ชจ ์์์ line-height: 0;์ ์ ์ฉํด์ผ ํฉ๋๋ค.
์ด๋ฏธ์ง ์ฌ๋ฐฑ์ ์์ ํ ์์ ๊ธฐ ์ํ ๊ฐ์ฅ ํ์คํ CSS ์ ์ฉ ๋ฐฉ๋ฒ์ ์ด๋ป๊ฒ ๋๋์?
๊ฐ์ฅ ํ์คํ ๋ฐฉ๋ฒ์ ์ด๋ฏธ์ง(img)๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ผ ์์์ { display: block; margin: 0; padding: 0; line-height: 0; }์ ๋ชจ๋ ์ ์ฉํ๋ ๊ฒ์ ๋๋ค. display: block;์ ์ถ๊ฐํ๋ฉด ์ธ๋ผ์ธ ์์์์ ๋ฐ์ํ๋ ๊ธฐ์ค์ ์ฌ๋ฐฑ ๋ฌธ์ ๋ฅผ ์์ฒ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
https://everydayhub.tistory.com/1302
https://everydayhub.tistory.com/30