10.1 ๋ณ์ ์ ์ธ
CSS ๋ณ์(๋๋ ์ฌ์ฉ์ ์ ์ ์์ฑ(CSS Custom Properties))๋ ๊ฐ๋ฐ์๋ค์ด ๊ฐ๋ค์ ํ ๊ณณ์ ์ ์ฅํ๊ณ ๋ฌธ์ ๋ด์์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํด์ค. ์ด ๊ธฐ๋ฅ์ ํนํ ํฐ ํ๋ก์ ํธ์์ CSS๋ฅผ ๋ ์ ์ฐํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ค.
๋ณ์ ์ ์ธ
CSS์์ ๋ณ์๋ ๋ณ์๊ฐ ์ ์ธ๋ ๋ ๋ ๊ฐ์ ๋์ (--)๋ก ์์ํด. ์ผ๋ฐ์ ์ผ๋ก ์ด ๋ณ์๋ค์ :root
์ ํ์ ์์ ์ ์ธ๋ผ์ ๋ฌธ์ ์ ์ฒด์์ ์ฌ์ฉํ ์ ์์ด.
๊ตฌ๋ฌธ:
:root {
--๋ณ์-์ด๋ฆ: ๊ฐ;
--๋ณ์-์ด๋ฆ: ๊ฐ;
}
์:
์ด ์์์๋ ์ธ ๊ฐ์ ๋ณ์๋ฅผ ์ ์ธํ์ด: --main-color
, --secondary-color
, ๊ทธ๋ฆฌ๊ณ --font-size
.
:root {
--main-color: #3498db;
--secondary-color: #2ecc71;
--font-size: 16px;
}
10.2 ๋ณ์ ์ฌ์ฉ
๋ณ์๋ฅผ ์ฌ์ฉํ ๋๋ var()
ํจ์๋ฅผ ์ฌ์ฉํด, ์ด ํจ์๋ ๋ณ์ ์ด๋ฆ์ ์ธ์๋ก ๋ฐ์.
๊ตฌ๋ฌธ:
์ ํ์ {
์์ฑ: var(--๋ณ์-์ด๋ฆ);
์์ฑ: var(--๋ณ์-์ด๋ฆ);
}
์:
์ด ์์์๋ ์ด์ ์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ <body>
์์์ ๋ฐฐ๊ฒฝ, ํ
์คํธ ์์ ๋ฐ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์คํ์ผ๋ง ํด.
body {
background-color: var(--main-color);
color: var(--secondary-color);
font-size: var(--font-size);
}
10.3 ๋ณ์์ ์์ ๋ฐ ์ฌ์ ์
CSS ๋ณ์๋ ์์์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ผ ์์๋ผ. ์ฆ, ํ ์์์ ์ ์ธ๋ ๋ณ์๋ฅผ ๊ทธ์ ์์ ์์๋ค๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฑฐ์ผ. ๋ณ์๋ค์ ๋ค๋ฅธ ์ ํ์ ๋ด์์ ๋ค์ ์ ์ํ ์๋ ์์ด.
์:
์ด ์์์ .header
์์๋ --main-color
๋ณ์๋ฅผ ์ฌ์ ์ ํ๊ณ , ์ด ์๋ก์ด ๋ณ์๋ ๋จ์ง ์ด ์์์๋ง ์ ์ฉ๋ผ. ๋์์, .footer
์์๋ :root
์ ์ ์ธ๋ ๋ณ์ ๊ฐ์ ์ฌ์ฉํด.
<div class="header">Header</div>
<div class="footer">Footer</div>
:root {
--main-color: #3498db;
}
.header {
--main-color: #e74c3c;
background-color: var(--main-color);
}
.footer {
background-color: var(--main-color);
}
10.4 CSS ๋ณ์ ์ฌ์ฉ์ ์ฅ์
1. ์คํ์ผ ๊ด๋ฆฌ ๊ฐ์ํ:
๋ณ์๋ค์ ์ฌ์ฉํ๋ฉด ํ ์์น์์ ํ๋์ ์์ฑ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๊ณ , ์ด ๋ณ๊ฒฝ์ ๋ณ์๊ฐ ์ฌ์ฉ๋ ๋ชจ๋ ์ฅ์์ ์๋์ผ๋ก ์ ์ฉ๋ผ. ์ด๋ ํนํ ํ ๋งํ ๋ฐ ์ผ๊ด๋ ์คํ์ผ ์ ์ง์ ์ ์ฉํด.
2. ์ฝ๋ ๊ฐ๋ ์ฑ ๋ฐ ์ ์ง๋ณด์ ํฅ์:
๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด CSS ์ฝ๋๊ฐ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฌ์์ ธ. ์๋ํ๋ฉด ์์์ด๋ ํฌ๊ธฐ ๊ฐ์ ๊ฐ์ ์ค๋ช
ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด์ผ, ์๋ฅผ ๋ค์ด ์์ ์ด๋ฆ์ ์ฌ์ฉํด ์๋ฏธ ์๋ ์ด๋ฆ์ผ๋ก ๋ง๋ค ์ ์์ด
(--main-color
๋์ ์ #3498db
).
3. ์คํ์ผ์ ๋์ ์ ๋ฐ์ดํธ:
๋ณ์๋ค์ JavaScript๋ฅผ ํตํด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์์ด์ ๋ ์ธํฐ๋ํฐ๋ธํ๊ณ ๋์ ์ธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค ์ ์์ด.
GO TO FULL VERSION