2.1 CSS ๋ณ์ ์ ์ธํ๊ธฐ
CSS ๋ณ์๋ ์ฌ์ฉ์ ์ ์ ์์ฑ(Custom Properties)์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, CSS ์ฝ๋์ ๋ค์ํ ๋ถ๋ถ์์ ์ฌ์ฌ์ฉํ ์ ์๋ ๊ฐ์ ์ ์ํ ์ ์๊ฒ ํด์ค. ์คํ์ผ ๊ด๋ฆฌ๋ฅผ ํฌ๊ฒ ๋จ์ํํ๊ณ ์ ์ฐ์ฑ์ ๋์ฌ์ค.
CSS ๋ณ์๋ ๋๋ธ ๋์(--)๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธ๋๋ฉฐ, ์ด๋ค ์ ํ์์์๋ ์ค์ ํ ์ ์์ด. ํ์ง๋ง ๋ฌธ์ ์ ์ฒด์์ ๋ณ์๋ฅผ ํ์ฉํ ์ ์๋๋ก ํ๊ธฐ ์ํด ์ข
์ข
๋ฃจํธ ์ ํ์ :root
์ ์ ์ํด.
๋ฌธ๋ฒ:
์ ํ์ {
--๋ณ์-์ด๋ฆ: ๊ฐ;
}
์์ :
์ด ์์ ์์๋ ๋ค ๊ฐ์ง ๋ณ์๋ฅผ ์ ์ธํ์ด: --main-bg-color
, --main-text-color
, --primary-color
, and --font-size
.
:root {
--main-bg-color: #f0f0f0;
--main-text-color: #333;
--primary-color: #3498db;
--font-size: 16px;
}
CSS ๋ณ์ ์ฌ์ฉํ๊ธฐ
๋ณ์์ ๊ฐ์ ์ฌ์ฉํ๊ธฐ ์ํด var()
ํจ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด ํจ์๋ ๋ณ์ ์ด๋ฆ์ ์ธ์๋ก ๋ฐ์.
๋ฌธ๋ฒ:
์ ํ์ {
์์ฑ: var(--๋ณ์-์ด๋ฆ);
}
์์ :
์ด ์์ ์์๋ ๋ณ์ ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฐฐ๊ฒฝ์, ํ ์คํธ ์์, ํฐํธ ํฌ๊ธฐ, ๋งํฌ ์์์ ์ง์ ํด.
body {
background-color: var(--main-bg-color);
color: var(--main-text-color);
font-size: var(--font-size);
}
a {
color: var(--primary-color);
}
2.2 CSS ๋ณ์ ์ฌ์ฉ ์์
์์ 1: ๋ณ์์ ๊ธฐ๋ณธ ์ฌ์ฉ
:root {
--main-bg-color: #f0f0f0;
--main-text-color: #333;
--primary-color: #3498db;
--font-size: 16px;
}
body {
background-color: var(--main-bg-color);
color: var(--main-text-color);
font-size: var(--font-size);
}
a {
color: var(--primary-color);
}
<body>
<p>This is a paragraph with a link to <a href="#">Example.com</a>.</p>
</body>
๊ฒฐ๊ณผ:
- ํ์ด์ง ๋ฐฐ๊ฒฝ์ ๋ฐ์ ํ์์ด ๋ ๊ฑฐ์ผ
- ํ ์คํธ๋ ์ด๋์ด ํ์์ด ๋ ๊ฑฐ์ผ
- ํฐํธ ํฌ๊ธฐ๋ 16ํฝ์ ์ด ๋ ๊ฑฐ์ผ
- ๋งํฌ๋ ํ๋์์ด ๋ ๊ฑฐ์ผ
์์ 2: ๊ฐ๋ณ ์ปดํฌ๋ํธ์์ ๋ณ์ ์ฌ์ ์ํ๊ธฐ
CSS ๋ณ์๋ ๊ฐ๋ณ ์์๋ ์ปดํฌ๋ํธ์ ๋ํด ์ฌ์ ์ํ ์ ์์ด์ ์คํ์ผ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํด:
:root {
--main-bg-color: #f0f0f0;
--main-text-color: #333;
--primary-color: #3498db;
}
.header {
background-color: var(--primary-color);
color: var(--main-bg-color);
}
.footer {
--primary-color: #e74c3c; /* ๋ณ์ ์ฌ์ ์ */
background-color: var(--primary-color);
color: var(--main-bg-color);
}
<div class="header">
<p>This is the header.</p>
</div>
<div class="footer">
<p>This is the footer.</p>
</div>
๊ฒฐ๊ณผ:
- ํค๋์ ๋ฐฐ๊ฒฝ์ ํ๋์์ด๊ณ , ํ ์คํธ๋ ๋ฐ์ ํ์์ด ๋ ๊ฑฐ์ผ
- ํธํฐ์ ๋ฐฐ๊ฒฝ์ ๋นจ๊ฐ์(์ฌ์ ์๋ ๋ณ์)์ด๊ณ , ํ ์คํธ๋ ๋ฐ์ ํ์์ด ๋ ๊ฑฐ์ผ
์์ 3: ๋ค๋ฅธ ๊ฐ๋ค๊ณผ ์กฐํฉํ์ฌ ๋ณ์ ์ฌ์ฉํ๊ธฐ
CSS ๋ณ์๋ ๋ค๋ฅธ CSS ๊ฐ ๋ฐ ํจ์์ ์กฐํฉํ์ฌ ์ฌ์ฉํ ์ ์์ด:
:root {
--padding: 10px;
--margin: 20px;
}
.container {
padding: var(--padding);
margin: var(--margin) auto;
border: 1px solid black;
}
<div class="container">
<p>This is a container with padding and margin.</p>
</div>
๊ฒฐ๊ณผ:
- ์ปจํ ์ด๋๋ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋ ํจ๋ฉ๊ณผ ๋ง์ง์ ๊ฐ์ง ๊ฑฐ์ผ
2.3 JavaScript์์ CSS ๋ณ์ ์ฌ์ฉํ๊ธฐ
JavaScript์์ CSS ๋ณ์ ์ฌ์ฉ ์
CSS ๋ณ์๋ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ด, ์ค์๊ฐ ์คํ์ผ ์ ์ฉ์ ๊ฐ๋ฅํ๊ฒ ํด:
:root {
--bg-color: #ffffff;
--text-color: #000000;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
<button id="toggle-theme">Toggle Theme</button>
<p>This is a paragraph.</p>
document.getElementById('toggle-theme').addEventListener('click', () => {
const root = document.documentElement;
if (root.style.getPropertyValue('--bg-color') === '#ffffff') {
root.style.setProperty('--bg-color', '#333333');
root.style.setProperty('--text-color', '#ffffff');
} else {
root.style.setProperty('--bg-color', '#ffffff');
root.style.setProperty('--text-color', '#000000');
}
});
์ค๋ช :
๋ฒํผ์ ํด๋ฆญํ๋ฉด --bg-color
์ --text-color
๋ณ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ด ํ์ด์ง์ ๋ฐฐ๊ฒฝ์๊ณผ ํ
์คํธ ์์์ด ๋ฐ๋์ด.
GO TO FULL VERSION