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

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
CSS包含:为您的项目选择正确的方法CSS包含:为您的项目选择正确的方法May 16, 2025 am 12:02 AM

ThebestmethodforincludingCSSdependsonprojectsizeandcomplexity:1)Forlargerprojects,useexternalCSSforbettermaintainabilityandperformance.2)Forsmallerprojects,internalCSSissuitabletoavoidextraHTTPrequests.Alwaysconsidermaintainabilityandperformancewhenc

这不应该发生:对不可能进行故障排除这不应该发生:对不可能进行故障排除May 15, 2025 am 10:32 AM

解决这些不可能的问题之一,这是您从未想过的其他问题的问题。

@KeyFrames vs CSS过渡:有什么区别?@KeyFrames vs CSS过渡:有什么区别?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用页面CMS进行静态站点内容管理使用页面CMS进行静态站点内容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的内容管理系统选项可用,而我进行了几个测试,但实际上没有一个是一个,y'知道吗?怪异的定价模型,艰难的自定义,有些甚至最终成为整个&

链接HTML中CSS文件的最终指南链接HTML中CSS文件的最终指南May 13, 2025 am 12:02 AM

链接CSS文件到HTML可以通过在HTML的部分使用元素实现。1)使用标签链接本地CSS文件。2)多个CSS文件可通过添加多个标签实现。3)外部CSS文件使用绝对URL链接,如。4)确保正确使用文件路径和CSS文件加载顺序,优化性能可使用CSS预处理器合并文件。

CSS Flexbox与网格:全面评论CSS Flexbox与网格:全面评论May 12, 2025 am 12:01 AM

选择Flexbox还是Grid取决于布局需求:1)Flexbox适用于一维布局,如导航栏;2)Grid适合二维布局,如杂志式布局。两者在项目中可结合使用,提升布局效果。

如何包括CSS文件:方法和最佳实践如何包括CSS文件:方法和最佳实践May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用标签在HTML的部分引入外部CSS文件。1.使用标签引入外部CSS文件,如。2.对于小型调整,可以使用内联CSS,但应谨慎使用。3.大型项目可使用CSS预处理器如Sass或Less,通过@import导入其他CSS文件。4.为了性能,应合并CSS文件并使用CDN,同时使用工具如CSSNano进行压缩。

Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

See all articles

热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

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

热门文章

北端:融合系统,解释
4 周前By尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
4 周前By尊渡假赌尊渡假赌尊渡假赌
<🎜>掩盖:探险33-如何获得完美的色度催化剂
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器