CSS ์๋ ๋ฐฉ์
CSS ๊ธฐ๋ณธ ์ฌํญ, CSS ์ ๋ชฉ์ ๋ฐ ๊ฐ๋จํ ์คํ์ผ ์ํธ ์์ฑ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. ์ด ๊ฐ์์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ CSS ์ HTML ์ ๊ฐ์ ธ์์ ์น ํ์ด์ง๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ดํด ๋ด ๋๋ค.
| ์ ์ ์กฐ๊ฑด: | ๊ธฐ๋ณธ์ ์ธ ์ปดํจํฐ ํ์ฉ๋ฅ๋ ฅ, ๊ธฐ๋ณธ ์ํํธ์จ์ด ์ค์น, ํ์ผ ์์ ์ ๊ธฐ๋ณธ ์ง์ ๋ฐ HTML ๊ธฐ๋ณธ ์ฌํญ (HTML ์๊ฐ ํ์ต.) |
|---|---|
| ๋ชฉ์ : | ๋ธ๋ผ์ฐ์ ์์ CSS ์ HTML ์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ ์ฌํญ๊ณผ ๋ธ๋ผ์ฐ์ ์์ CSS ๋ฅผ ์ดํดํ์ง ๋ชปํ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋๋์ง ์ดํดํ๊ธฐ. |
CSS ๋ ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌธ์๋ฅผ ํ์ํ ๋, ๋ฌธ์์ ์ฝํ ์ธ ์ ํด๋น ์คํ์ผ ์ ๋ณด๋ฅผ ๊ฒฐํฉํด์ผ ํฉ๋๋ค. ์๋ ๋์ด๋ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์น ํ์ด์ง๋ฅผ ๋ก๋ํ ๋ ๋ฐ์ํ๋ ์์ ์ ๋งค์ฐ ๋จ์ํ๋ ๋ฒ์ ์ด๋ฉฐ, ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์์ ์ ์ฒ๋ฆฌํ๋ค๋ ์ ์ ๋ช ์ฌํ์ธ์. ํ์ง๋ง ๋๋ต์ ์ธ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ HTML (์: ๋คํธ์ํฌ์์ HTML ์ ์์ ) ์ ๋ก๋ํฉ๋๋ค.
- HTML ์ DOM (Document Object Model) ๋ก ๋ณํํฉ๋๋ค. DOM ์ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌธ์๋ฅผ ๋ํ๋ ๋๋ค. DOM ์ ๋ค์ ์น์ ์์ ์ข ๋ ์์ธํ ์ค๋ช ๋ฉ๋๋ค.
- ๊ทธ๋ฌ๋ฉด ๋ธ๋ผ์ฐ์ ๋ HTML ๋ฌธ์์ ์ฐ๊ฒฐ๋ ์๋ฒ ๋๋ ์ด๋ฏธ์ง, ๋์์, ๋งํฌ๋ CSS๊ฐ์ ๋๋ถ๋ถ์ ๋ฆฌ์์ค๋ค์ ๊ฐ์ ธ์ต๋๋ค! JavaScript๋ ์์ ์์ ๋์ค์ ์ฒ๋ฆฌ๋๋ฏ๋ก ๋ ๊ฐ๋จํ๊ฒ ํ๊ธฐ์ํด ์ฌ๊ธฐ์์๋ ๋ค๋ฃจ์ง ์์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ๊ฐ์ ธ์จ CSS๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์ ํ์ ์ ํ๋ณ๋ก ๋ค๋ฅธ ๊ท์น์ ๋ค๋ฅธ "๋ฒํท" ์ผ๋ก ์ ๋ ฌํฉ๋๋ค. ์: ์์, ํด๋์ค, ID ๋ฑ ์ฐพ์ ์ ํ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก DOM์ ์ด๋ ๋ ธ๋์ ์ด๋ค ๊ท์น์ ์ ์ฉํด์ผ ํ๋์ง ๊ฒฐ์ ํ๊ณ , ํ์์ ๋ฐ๋ผ ์คํ์ผ์ ์ฒจ๋ถํฉ๋๋ค (์ด ์ค๊ฐ ๋จ๊ณ๋ฅผ ๋ ๋ ํธ๋ฆฌ๋ผ๊ณ ํฉ๋๋ค).
- ๋ ๋ ํธ๋ฆฌ๋ ๊ท์น์ด ์ ์ฉ๋ ํ์ ํ์๋์ด์ผ ํ๋ ๊ตฌ์กฐ๋ก ๋ฐฐ์น๋ฉ๋๋ค.
- ํ์ด์ง์ ์๊ฐ์ ํ์๊ฐ ํ๋ฉด์ ํ์๋ฉ๋๋ค (์ด ๋จ๊ณ๋ฅผ ํ์ธํ ์ด๋ผ๊ณ ํฉ๋๋ค).
๋ค์ ๊ทธ๋ฆผ์ ์์ ์ ๊ฐ๋จํ ๋ณด๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
DOM ์ ๋ณด
DOM์ ํธ๋ฆฌ์ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋งํฌ ์ ์ธ์ด์ ๊ฐ ์์, ์์ฑ ๋ฐ ํ ์คํธ๋ ํธ๋ฆฌ ๊ตฌ์กฐ์์ DOM node ๊ฐ ๋ฉ๋๋ค. ๋ ธ๋๋ ๋ค๋ฅธ DOM ๋ ธ๋์์ ๊ด๊ณ์ ์ํด ์ ์๋ฉ๋๋ค. ์ผ๋ถ ์์๋ ์์ ๋ ธ๋์ ๋ถ๋ชจ์ด๊ณ ์์ ๋ ธ๋์๋ ํ์ ๊ฐ ์์ต๋๋ค.
DOM์ CSS์ ๋ฌธ์์ ๋ด์ฉ์ด ๋ง๋๋ ๊ณณ์ด๊ธฐ ๋๋ฌธ์ DOM ์ ์ดํดํ๋ฉด CSS๋ฅผ ์ค๊ณ, ๋๋ฒ๊ทธ ๋ฐ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ DevTools๋ก ์์ ์ ์์ํ๋ฉด, ์ ์ฉํ ๊ท์น์ ๋ณด๊ธฐ ์ํด ํญ๋ชฉ์ ์ ํํ ๋ DOM์ ํ์ํ๊ฒ ๋ฉ๋๋ค.
์ค์ DOM ํํ
๊ธธ๊ณ ์ง๋ฃจํ ์ค๋ช ์ด ์๋๋ผ ์ค์ HTML์ด DOM์ผ๋ก ๋ณํ๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์์ ๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
๋ค์ HTML ์ฝ๋๋ฅผ ์ฌ์ฉํ์ญ์์ค:
<p>
์ฌ์ฉํด ๋ด
์๋ค:
<span>๊ณ๋จ์</span>
<span>์คํ์ผ</span>
<span>์ํธ๋ค</span>
</p>
DOM์์, <p> ์์์ ํด๋นํ๋ ๋
ธ๋๋ ๋ถ๋ชจ์
๋๋ค. ์์์ ํ
์คํธ ๋
ธ๋์ด๊ณ <span> ์์์ ํด๋นํ๋ ์ธ ๊ฐ์ ๋
ธ๋์
๋๋ค. SPAN ๋
ธ๋๋ ๋ถ๋ชจ์ด๋ฉฐ, ํ
์คํธ ๋
ธ๋๋ ์์์
๋๋ค:
P โโ "์ฌ์ฉํด ๋ด ์๋ค:" โโ SPAN | โโ "๊ณ๋จ์" โโ SPAN | โโ "์คํ์ผ" โโ SPAN โโ "์ํธ๋ค"
๋ธ๋ผ์ฐ์ ๊ฐ ์ด์ HTML์ ํด์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์์ DOM ํธ๋ฆฌ๋ฅผ ๋ ๋๋ง ํ ๋ค์ ๋ธ๋ผ์ฐ์ ์์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅํฉ๋๋ค:
DOM์ CSS ์ ์ฉํ๊ธฐ
CSS๋ฅผ ๋ฌธ์์ ์ถ๊ฐํ์ฌ ์คํ์ผ์ ์ง์ ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ๋ค์ ํ ๋ฒ, HTML์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
<p>
์ฌ์ฉํด ๋ด
์๋ค:
<span>๊ณ๋จ์</span>
<span>์คํ์ผ</span>
<span>์ํธ๋ค</span>
</p>
๋ค์ CSS๋ฅผ ์ ์ฉํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค:
span {
border: 1px solid black;
background-color: lime;
}
๋ธ๋ผ์ฐ์ ๋ HTML์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ๊ทธ๋ก๋ถํฐ DOM์ ์์ฑํ๊ณ , CSS๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๋ค. CSS์์ ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ๊ท์น์๋ span ์ ํ์๊ฐ ์์ผ๋ฏ๋ก, ๋ธ๋ผ์ฐ์ ๋ CSS๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ ๋ ฌํ ์ ์์ต๋๋ค! ์ด ๊ท์น์ ์ธ ๊ฐ์ <span> ๊ฐ๊ฐ์ ์ ์ฉํ ๋ค์ ์ต์ข
์๊ฐ์ ํํ์ ํ๋ฉด์ ํ์ํฉ๋๋ค.
์ ๋ฐ์ดํธ ๋ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
๋ค์ ๊ณผ์ ์ CSS ๋๋ฒ๊น ๊ธฐ์ฌ์์ ๋ธ๋ผ์ฐ์ DevTools๋ฅผ ์ฌ์ฉํ์ฌ, CSS ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ CSS๋ฅผ ํด์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์์ ๋ด ๋๋ค.
๋ธ๋ผ์ฐ์ ์์ ์ธ์ํ์ง ๋ชปํ๋ CSS๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น?
"CSS๋ ๋ฌด์์ธ๊ฐ" ๊ธฐ์ฌ์ "๋ธ๋ผ์ฐ์ ์ง์ ์ ๋ณด" ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ชจ๋ ๋์์ ์๋ก์ด CSS๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์๋๋ผ๊ณ ์ธ๊ธํ์ต๋๋ค. ๋ํ ๋ง์ ์ฌ๋๋ค์ด ์ต์ ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. CSS๋ ํญ์ ๊ฐ๋ฐ๋๊ณ ์์ผ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ํ ์ ์๋ ๊ฒ๋ณด๋ค ์์ ์๊ธฐ ๋๋ฌธ์, ๋ธ๋ผ์ฐ์ ๊ฐ CSS ์ ํ์ ๋๋ ์ธ์ํ์ง ๋ชปํ๋ ์ ์ธ์ ๋ฐ๊ฒฌํ๋ฉด ์ด๋ป๊ฒ ๋ ์ง ๊ถ๊ธํ ์ ์์ต๋๋ค.
๋๋ต์ ์๋ฌด๊ฒ๋ ํ์ง ์์ผ๋ฉฐ, CSS์ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค!
๋ธ๋ผ์ฐ์ ๊ฐ ๊ท์น์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์ดํดํ์ง ๋ชปํ๋ ์์ฑ์ด๋ ๊ฐ์ ๋ฐ๊ฒฌํ๋ฉด, ์ด๋ฅผ ๋ฌด์ํ๊ณ ๋ค์ ์ ์ธ์ผ๋ก ๋์ด๊ฐ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์์ฑ ๋๋ ๊ฐ์ ์ฒ ์๊ฐ ํ๋ ธ๊ฑฐ๋ ์์ฑ ๋๋ ๊ฐ์ด ๋๋ฌด ์๋กญ๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ง ์ด๋ฅผ ์ง์ํ์ง ์๋ ๊ฒฝ์ฐ, ๋ค์ ์ ์ธ์ผ๋ก ๋์ด๊ฐ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก, ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ์ง ๋ชปํ๋ ์ ํ์๋ฅผ ๋ง๋๋ฉด, ์ ์ฒด ๊ท์น์ ๋ฌด์ํ๊ณ ๋ค์ ๊ท์น์ผ๋ก ๋์ด๊ฐ๋๋ค.
์๋ ์์์ ๋๋ ์๊ตญ ์์ด ์ฒ ์๋ฅผ ์์์ ์ฌ์ฉํ๋๋ฐ, ๊ทธ ์์ฑ์ ์ธ์๋์ง ์๊ธฐ ๋๋ฌธ์ ์ ํจํ์ง ์์ต๋๋ค. ๊ทธ๋์ ๋ด ๋จ๋ฝ์ ํ๋์์ผ๋ก ํ์๋์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ชจ๋ CSS ๊ฐ ์ ์ฉ ๋์์ต๋๋ค. ์ ํจํ์ง ์์ ๋ผ์ธ๋ง ๋ฌด์๋ฉ๋๋ค.
<p>๋๋ ์ด ํ
์คํธ๋ฅผ ํฌ๊ณ ๊ตต์ ํ๋์์ผ๋ก ํ์ํ๊ณ ์ถ์ต๋๋ค.</p>
p {
font-weight: bold;
colour: blue; /* color ์์ฑ์ ์๋ชป๋ ์ฒ ์ */
font-size: 200%;
}
์ด ๋์์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ด๋ ์๋ก์ด CSS๋ฅผ ํฅ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉํ ์ ์์์ ์๋ฏธํ๋ฉฐ, ์ ๊ธฐ๋ฅ์ ์ดํดํ์ง ๋ชปํ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ป๊ฑฐ๋ ์ป์ง ๋ชปํฉ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ ์ป์ง ๋ชปํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํด๋ฐฑ ์คํ์ผ๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์๋กญ๊ณ ๋ชจ๋ ๊ณณ์์ ์ง์๋์ง ์๋ ๊ฐ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ํนํ ํจ๊ณผ์ ์
๋๋ค. ์๋ฅผ ๋ค์ด, ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ calc() ๋ฅผ ๊ฐ์ผ๋ก ์ง์ํ์ง ์์ต๋๋ค. ๋ฐ์ค์ ๋ํด ๋์ฒด ๋๋น๋ฅผ ํฝ์
๋จ์๋ก ์ง์ ํ ๋ค์, calc() ๊ฐ์ 100% - 50px ๋ก ๋๋น๋ฅผ ์ง์ ํ์ธ์. ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ ํฝ์
๋ฒ์ ์ ์ฌ์ฉํ์ง๋ง, ์ดํดํ์ง ๋ชปํ๋ calc() ์ ๋ํ ๋ผ์ธ์ ๋ฌด์ํฉ๋๋ค. ์๋ก์ด ๋ธ๋ผ์ฐ์ ๋ ํฝ์
์ ์ฌ์ฉํ์ฌ ๋ผ์ธ์ ํด์ํ์ง๋ง, ๋์ค์ ๋ค์ ์ค์ด ์ด์ด์ ๋ํ๋ฌ์๋ calc() ๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ธ์ ์ฌ์ ์ ํฉ๋๋ค.
.box {
width: 500px;
width: calc(100% - 50px);
}
์ฐ๋ฆฌ๋ ์ดํ ์์ ์์ ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๋ ๋ ๋ง์ ๋ฐฉ๋ฒ์ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
์์ฝ
์ด ๊ณผ์ ์ ๊ฑฐ์ ๋๋์ต๋๋ค. ํ ์ผ์ด ํ๋ ๋ ์์ต๋๋ค. ์ ๊ธฐ ํ์ด์ง ์คํ์ผ๋ง ํ๊ธฐ ์์๋ ์์ ์ ์คํ์ผ์ ๋ณ๊ฒฝํ์ฌ ์์ ์ ์ผ๋ถ CSS๋ฅผ ํ ์คํธ ํฉ๋๋ค.