๋คํฌ๋ชจ๋ ๋ผ์ดํธ ๋ชจ๋ ๋ฒํผ์ ์ ์ฉํด์ ๋ธ๋ก๊ทธ ๋์ CSS ์ ์ฉํ๊ธฐ
๋ธ๋ก๊ทธ์ ๋คํฌ๋ชจ๋,๋ผ์ดํธ ๋ชจ๋ CSS ์ ์ฉ
-๋คํฌ๋ชจ๋. ๋ผ์ดํธ๋ชจ๋ ์คํจ๊ณต์
- ๋ธ๋ก๊ทธ ํ
๋ง ์ ํ ๋ฒํผ์ผ๋ก ์คํจ ๋ณ๊ฒฝํ๊ธฐ
๋คํฌ๋ชจ๋์ ๋ผ์ดํธ ๋ชจ๋ ์คํจ์ ์ฝ๊ฒ ๋ธ๋ก๊ทธ์ ๋คํฌ๋ชจ๋ ๋ฒํผ์ ์ค์ ํด์ ๋ธ๋ก๊ทธ ๋ฐฉ๋ฌธ์๋ค์๊ฒ ๊ฐ์ธ์ ์ทจํฅ์ ๋ง๋ ๋ธ๋ก๊ทธ ํ๊ฒฝ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด์ ๋ ๋จ์ํ ์ฝํ ์ธ ๋ง ์ ๊ณตํ๋ ์๋๋ฅผ ๋์ด, ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ๊ทน๋ํํ๋ ์์๊ฐ ํ์์ ๋๋ค. ๊ทธ ์ค์ฌ์ ์๋ ๋คํฌ๋ชจ๋ ๋ฒํผ์ ๋ฐฉ๋ฌธ์์ ์ทจํฅ์ ๋ฐ๋ผ ํ ๋ง๋ฅผ ์ ํํ ์ ์๋๋ก ํ๊ณ , ํ๋ฉด ๋ฐ๊ธฐ์ ์คํ์ผ์ ์์ ๋กญ๊ฒ ์ ํํ ์ ์์ต๋๋ค.
์ด ๊ธ์์๋ ๋คํฌ๋ชจ๋ ๋ฒํผ์ ๋ธ๋ก๊ทธ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ , ์ด๋ฅผ ํตํด ๋ธ๋ก๊ทธ ์ฒด๋ฅ ์๊ฐ์ ๋๋ฆฌ๊ณ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๋์ด๋ ๋ธ๋ก๊ทธ ํ ๋ง ์์ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. JavaScript์ CSS๋ฅผ ํ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ๋คํฌ๋ชจ๋์ ๋ผ์ดํธ ๋ชจ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์ด ๊ธ์์๋ JavaScript๋ฅผ ์ฌ์ฉํด ๋คํฌ๋ชจ๋์ ๋ผ์ดํธ ๋ชจ๋ ๋ฒํผ์ ์ ์ฉํ์ฌ ๋์ ์ผ๋ก CSS๋ฅผ ์ ์ฉํด ํ ๋ง๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๊ณผ ์ค์ ๋ก ๋ธ๋ก๊ทธ์ ๊ตฌํํ๋ ๊ณผ์ ๊ณผ ์ฝ๋๋ฅผ ๊ณต์ ํฉ๋๋ค.
ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ ๋คํฌ๋ชจ๋ ๋ผ์ดํฌ๋ชจ๋ ์คํจ ๋ฒํผ ์ถ๊ฐํ๋ ๋ฒ
๋ธ๋ก๊ทธ์ ๋ฐฉ๋ฌธํ๋ ๋ฐฉ๋ฌธ์์ ์ ํ์ ์ํด ํ์ฌ์ ์ฌ์ดํธ๋ ๋ธ๋ก๊ทธ๋ฅผ ๋์ CSS๋ฅผ ํ์ฉํ๋ฉด ๋ฐฉ๋ฌธ์๊ฐ ์์ ์ ์ทจํฅ์ ๋ง๋ ํ ๋ง๋ฅผ ์ ํํ ์ ์์ด ๋ธ๋ก๊ทธ์ ์ฒด๋ฅ ์๊ฐ์ ๋๋ฆฌ๊ณ , ๋ง์กฑ๋๋ฅผ ๋์ด๋ ๋ฐ ํจ๊ณผ์ ์ ๋๋ค.
- ๋คํฌ ๋ชจ๋: ๋ฐฉ๋ฌธ์๊ฐ ๋คํฌ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด ์ ํ ๋ณ๊ฒฝ.
- ๋ฐ์ํ ์คํ์ผ: ํน์ ํ๋ฉด ํฌ๊ธฐ์์ ๋ค๋ฅธ ์คํ์ผ ์ ์ฉ.
- ์ฌ์ฉ์ ์ง์ ํ ๋ง: ์ฌ์ฉ์ ์ ํ์ ๋ฐ๋ผ ํ ๋ง ์์ ๋ณ๊ฒฝ.
๋คํฌ๋ชจ๋ ๋ผ์ดํธ ์คํจ ๋ณ๊ฒฝ ๋ชจ๋ ๋ฒํผ ์ฝ๋ ์ ์ฉ๋ฐฉ๋ฒ
JavaScript๋ฅผ ์ฌ์ฉํ๋ฉด HTML ์์์ ๋์ ์ผ๋ก CSS ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
๋ฐฉ๋ฌธ์๊ฐ ํ์ฌ ํ ๋ง๋ฅผ ์ ํํ ์ ์๋๋ก ๋ฒํผ์ ์ถ๊ฐํฉ๋๋ค. ์๋ HTML ์ฝ๋๋ฅผ ์ฌ์ฉํด ์ฌ์ด๋๋ฐ์ ๋ฒํผ์ ์ ์ฉํฉ๋๋ค.
<button id="toggle-theme" style="padding: 10px 20px; font-size: 16px; margin-top: 20px; cursor: pointer; background-color: white; color: black; border: 2px solid black; border-radius: 5px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: background-color 0.3s, color 0.3s;">
ํ
๋ง ์ ํ
</button>
HTML ๋ฐฐ๋ ์ถ๋ ฅ ์ ์ฉ๋ฐฉ๋ฒ
๊ด๋ฆฌ์ ํ์ด์ง์์ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ผ ๋ฒํผ์ ์ถ๊ฐํฉ๋๋ค.
- ์ฌ์ด๋๋ฐ ์ค์ ๊ธฐ๋ณธ ๋ชจ๋์์ HTML ๋ฐฐ๋ ์ถ๋ ฅ์ ์ ํํฉ๋๋ค.
- ์ HTML ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ์ ์ฅํฉ๋๋ค.
- HTML ๋ฐฐ๋ ์ถ๋ ฅ์ด ์์ ๊ฒฝ์ฐ, ํ๋ฌ๊ทธ์ธ์์ ํด๋น ๋ชจ๋์ ์ค์น ํ ์งํํฉ๋๋ค.
์คํจ ๋ณ๊ฒฝ ๋ฒํผ ์ฝ๋ ์ถ๊ฐ
์์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํด์ ์ ์ฅํฉ๋๋ค.
๋คํฌ๋ชจ๋ ๋ผ์ดํธ ๋ชจ๋ ๋ฒํผ ์คํฌ๋ฆฝํธ ์ฝ๋ ์ถ๊ฐ
ํ ๋ง ์ ํ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด JavaScript ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ธ๋ก๊ทธ ์คํจ ํธ์ง์ HTML ์ตํ๋จ, /body ํ๊ทธ ๋ฐ๋ก ์์ ์ฝ์ ํฉ๋๋ค.
<script>
function toggleTheme() {
const htmlElement = document.documentElement;
const currentTheme = htmlElement.getAttribute('data-phocus-theme');
const themeStylesheet = document.getElementById('theme-stylesheet');
const button = document.getElementById('toggle-theme');
if (currentTheme === 'dark') {
htmlElement.setAttribute('data-phocus-theme', 'light');
themeStylesheet.href = 'https://tistory1.daumcdn.net/tistory/7199696/skin/images/light.css';
button.textContent = '๋คํฌ ๋ชจ๋';
} else {
htmlElement.setAttribute('data-phocus-theme', 'dark');
themeStylesheet.href = 'https://tistory1.daumcdn.net/tistory/7199696/skin/images/dark.css';
button.textContent = '๋ผ์ดํธ ๋ชจ๋';
}
localStorage.setItem('theme', htmlElement.getAttribute('data-phocus-theme'));
}
document.addEventListener('DOMContentLoaded', () => {
const savedTheme = localStorage.getItem('theme') || 'light';
const htmlElement = document.documentElement;
const themeStylesheet = document.getElementById('theme-stylesheet');
const button = document.getElementById('toggle-theme');
htmlElement.setAttribute('data-phocus-theme', savedTheme);
themeStylesheet.href = `https://tistory1.daumcdn.net/tistory/7494097/skin/images/${savedTheme}.css`;
button.textContent = savedTheme === 'dark' ? '๋ผ์ดํธ ๋ชจ๋' : '๋คํฌ ๋ชจ๋';
});
document.getElementById('toggle-theme').addEventListener('click', toggleTheme);
</script>
๊ธฐ๋ณธ ์คํจ ์ค์
๋ธ๋ก๊ทธ ๋ฐฉ๋ฌธ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉ๋๋ ํ ๋ง๋ฅผ ์ค์ ํฉ๋๋ค. data-phocus-theme ์์ฑ์ ํ์ฉํด ์ด๊ธฐ ์ํ๋ฅผ ์ง์ ํฉ๋๋ค..
<html lang="ko" data-phocus-theme="light">
<link id="theme-stylesheet" rel="stylesheet" href="/skin/images/light.css"> <!-- Default light theme -->
์คํจ CSS ํ์ผ ๋ค์ด๋ก๋
๋ค์ ๋ CSS ํ์ผ์ ๋ค์ด๋ก๋ํ์ฌ ์ ๋ก๋ํ ํ, ํด๋น ๊ฒฝ๋ก๋ฅผ ์ ์คํฌ๋ฆฝํธ์ HTML ์ฝ๋์ ๋ฐ์ํฉ๋๋ค.
์๋ ํ์ผ์ ํฐ์คํ ๋ฆฌ ๋ถํด๋ฝ ๊ธฐ๋ณธ ์คํจ์ ๋คํฌ ๋ชจ๋์ ๋ผ์ดํธ ๋ชจ๋ ๋ณ๊ฒฝํ ์ฝ๋์ ๋๋ค. ๋ค๋ฅธ ์คํจ์ ๋ณ๊ฒฝํ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
์ ์ฉ๋ ์ํ ๋ธ๋ก๊ทธ
์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ๊ตฌํ๋ ๋ธ๋ก๊ทธ ์ ๋๋ค. ๋ฐฉ๋ฌธ์๋ค์ ๋คํฌ ๋ชจ๋์ ๋ผ์ดํธ ๋ชจ๋๋ฅผ ์์ ๋กญ๊ฒ ์ ํํ ์ ์์ต๋๋ค.
nanda
nandaarhat ๋์ ๋ธ๋ก๊ทธ ์ ๋๋ค.
nandaarhat.tistory.com
์ฝ๋ ์ ๋ฆฌ๊ธฐ
์ฝ๋ ์ ๋ ฅ ์ญ์ ์ฝ๋ "><p data-ke-size="size16"> "><p data-ke-size="size16"></p> "><p id="space" data-ke-size="size16"></p> ์ง์ฐ๊ธฐ ๋ณ๊ฒฝ ์ฝ๋ "><br> "><p> ..
everydayhub.tistory.com