深色模式和夜间模式是现代网站的必备功能。它们提高了可访问性,并让用户可以灵活地选择自己喜欢的外观。让我们深入了解如何使用 Tailwind CSS 和 CSS 变量构建此功能。
首先定义主题的颜色。这些 CSS 变量将位于父类中,以便轻松切换主题。
/* Light Theme (Default) */ :root { --bg-color: #ffffff; --text-color: #000000; } /* Dark Theme */ .theme-dark { --bg-color: #000000; --text-color: #ffffff; } /* Solarized Theme */ .theme-solarized { --bg-color: #002b36; --text-color: #839496; }
Tailwind 可以轻松使用 CSS 变量进行样式设置。
<div> <h2> Adding JavaScript for Dynamic Theme Switching </h2> <p>Here’s the JavaScript to handle theme changes dynamically:<br> </p> <pre class="brush:php;toolbar:false">const themeSelect = document.getElementById("theme-select"); const rootElement = document.documentElement; // Listen for dropdown changes themeSelect.addEventListener("change", (event) => { const selectedTheme = event.target.value; // Remove all theme classes rootElement.classList.remove("theme-light", "theme-dark", "theme-solarized"); // Add the selected theme class rootElement.classList.add(selectedTheme); }); // Set default theme on load window.addEventListener("DOMContentLoaded", () => { rootElement.classList.add("theme-light"); });
实时主题切换
当用户从下拉列表中选择主题时,背景和文本颜色会立即更改。这种动态更新使体验变得无缝和互动。
为什么这种方法很棒
通过保存所选主题使其更上一层楼,以便它在会话中持续存在。
// Save the theme themeSelect.addEventListener("change", (event) => { const selectedTheme = event.target.value; rootElement.classList.remove("theme-light", "theme-dark", "theme-solarized"); rootElement.classList.add(selectedTheme); localStorage.setItem("theme", selectedTheme); }); // Load the saved theme window.addEventListener("DOMContentLoaded", () => { const savedTheme = localStorage.getItem("theme") || "theme-light"; rootElement.classList.add(savedTheme); });
深色模式和夜间模式的额外提示
使用 Tailwind CSS 和 CSS 变量,创建动态深色模式或夜间模式既简单又高效。尝试一下,看看它如何改变您网站的用户体验!
以上是带有 Tailwind CSS 和 CSS 变量的深色模式和夜间模式的详细内容。更多信息请关注PHP中文网其他相关文章!