首页 web前端 css教程 让您的网站在几分钟内准备好深色模式

让您的网站在几分钟内准备好深色模式

Dec 27, 2024 pm 02:09 PM

Make Your Website Dark Mode Ready in Minutes

超过 80% 的用户希望在应用程序中使用深色模式,现在是在 Web 应用程序中实现它的最佳时机......

但别担心 - 您不需要做太多事情来重写 CSS 或经历各种艰苦的学习过程。

我将与您分享如何在不到 15 分钟的时间内为您的网站添加深色模式支持(是的,确实如此)。

在本教程结束时,您应该能够拥有一个优雅的深色模式,该模式可以感知系统并给您的用户留下深刻的印象。

了解系统级深色模式

近年来黑暗模式令人印象深刻的一点是,您不必从头开始创建复杂的主题切换器。

现代操作系统已经满足了用户的需求,浏览器通过 CSS 使这些需求变得简单。

这里的魔力是通过名为“prefers-color-scheme”的媒体查询发生的。看起来像这样:

@media (prefers-color-scheme: dark) {

  /* Your dark mode styles go here */

}

登录后复制
登录后复制

因此,每当用户激活系统上可怕的黑暗模式开关时,默认情况下此媒体查询就会被激活。

这允许您的网站风格根据用户的偏好自动调整。

好的一点是大多数现代浏览器都支持这种开箱即用的功能。我们正在谈论 Chrome、Firefox、Safari、Edge – 它们都在船上......

这意味着您可以利用系统级首选项,而无需任何额外的 JavaScript 或复杂的逻辑。

让我们开始有趣的部分 - 在您的代码中实际实现它。

快速实施方法

让我们直接开始吧 - 您需要做的第一件事是在 CSS 中设置颜色变量。方法如下:

/* In your root CSS file */
:root {
  /* Light mode colors (default) */
  --background: #ffffff;
  --text: #333333;
  --surface: #f5f5f5;
  --accent: #0066cc;
}

@media (prefers-color-scheme: dark) {
  :root {
    /* Dark mode colors */
    --background: #1a1a1a;
    --text: #ffffff;
    --surface: #2d2d2d;
    --accent: #66b3ff;
  }
}
登录后复制
登录后复制

现在您将使用这些变量,而不是对颜色进行硬编码。像这样:

body {
  background-color: var(--background);
  color: var(--text);
}

.card {
  background-color: var(--surface);
}

.button {
  background-color: var(--accent);
}
登录后复制

确实是这样!您的网站现在将根据您的用户系统偏好自动在浅色和深色模式之间切换。不需要 JavaScript,没有混乱的逻辑 – 干净简单的 CSS。

快速提示:从基本颜色开始,然后根据您的品牌进行调整。一开始不要太担心,稍后您可以随时回来调整。

进阶技巧

使用上述代码,您的网站应该可以完美运行,但让我们添加一些额外的修饰,使您的深色模式实现真正专业。

这些调整只需要几分钟,但却会产生巨大的变化:

首先,添加平滑过渡,这样模式切换就不会刺耳:

:root {
  --background: #ffffff;
  --text: #333333;
  /* Add this line */
  transition: background-color 0.3s ease, color 0.3s ease;
}
登录后复制

对于图像,尤其是徽标,添加此媒体查询以优雅地处理它们:

@media (prefers-color-scheme: dark) {
  img {
    /* Slightly dim non-essential images */
    opacity: 0.8;
  }

  /* But keep logos crisp */
  .logo {
    opacity: 1;
    filter: brightness(1.2);
  }
}
登录后复制

添加主题切换按钮

让我们为想要覆盖系统首选项的用户添加一个手动主题切换器。

这是完整的实现:

首先,为您的切换按钮添加此 HTML:

@media (prefers-color-scheme: dark) {

  /* Your dark mode styles go here */

}

登录后复制
登录后复制

这是使这一切正常工作的 JavaScript:

/* In your root CSS file */
:root {
  /* Light mode colors (default) */
  --background: #ffffff;
  --text: #333333;
  --surface: #f5f5f5;
  --accent: #0066cc;
}

@media (prefers-color-scheme: dark) {
  :root {
    /* Dark mode colors */
    --background: #1a1a1a;
    --text: #ffffff;
    --surface: #2d2d2d;
    --accent: #66b3ff;
  }
}
登录后复制
登录后复制

此代码为您提供了一个可切换按钮:

  • 默认尊重用户的系统偏好
  • 将他们的手动偏好保存在 localStorage
  • 页面重新加载后仍然存在
  • 根据当前主题显示太阳/月亮图标
  • 模式之间平滑过渡

专业提示:随意自定义图标 - 您可以使用 SVG,甚至创建更精致的开关设计。只需确保当前主题显而易见即可!

结论

所以,你的网站现在有了一个完全可用的、经过专业设计的深色模式功能!

您拥有系统感知的主题、流畅的动画、正确的图像渲染,甚至还有一个漂亮的切换按钮。

你不需要在第一天就让一切都很完美,记住这一点。

进行赤裸裸的实施,推动它,并在您使用该网站时和人们使用该网站时进行更改。

即使深色模式未完全正常工作,您的用户也会很高兴收到它。

以上是让您的网站在几分钟内准备好深色模式的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

如何将CSS网格用于粘头和页脚 如何将CSS网格用于粘头和页脚 Apr 02, 2025 pm 06:29 PM

CSS网格是一系列属性的集合,旨在使布局比以往任何时候都容易。像任何东西一样,那里有一点学习曲线,但是网格是

Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

See all articles