심플 다크/라이트 모드
8391 단어 htmlcssjavascript
체크박스와 JavaScript 함수를 호출하는 onClick을 사용하여 HTML에 토글 버튼 추가
<label id="toggle">
<input type="checkbox" onclick="toggleDarkMode(event)">
<span id="slider"></span>
</label>
그런 다음 CSS 변수를 어두운 모드 색상으로 설정하여 CSS에 데이터 모드를 추가합니다.
:root {
font-size: 10px;
--bg: white;
--font-color: black;
--btn-bg: black;
--btn-color: white;
}
[data-mode="dark"] {
--bg: black;
--font-color: white;
--btn-bg: white;
--btn-color: black;
}
이제 데이터 모드를 설정하거나 제거하는 JavaScript 함수를 작성하는 일만 남았습니다.
function toggleDarkMode(event) {
const isDarkmode = event.target.checked
if (isDarkmode) {
document.documentElement.setAttribute('data-mode', 'dark')
} else {
document.documentElement.setAttribute('data-mode', '')
}
}
그런 다음 몇 가지 CSS를 추가하여 버튼을 더 보기 좋게 만들고 전환을 추가할 수 있습니다.
:root {
font-size: 10px;
--bg: white;
--font-color: black;
--btn-bg: black;
--btn-color: white;
}
[data-mode="dark"] {
--bg: black;
--font-color: white;
--btn-bg: white;
--btn-color: black;
}
body {
width: 100vw;
font-size: 2rem;
background-color: var(--bg);
color: var(--font-color);
}
#toggle {
margin-right: 2rem;
width: 6rem;
height: 3.4rem;
border-radius: 3rem;
background-color: var(--btn-bg);
}
#toggle input {
opacity: 0;
width: 0;
height: 0;
}
#slider {
position: absolute;
z-index: 5;
cursor: pointer;
height: 2.5rem;
width: 2.5rem;
top: 1.23rem;
right: 1.8rem;
border-radius: 3rem;
background-color: var(--btn-color);
transition: ease-in .2s;
}
#slider.dark {
right: 4.2rem;
}
최종 결과는 다음과 같습니다.
Reference
이 문제에 관하여(심플 다크/라이트 모드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matoval/simple-dark-light-mode-5gah텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)