View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

更多视频

大多数浏览器和
Developer App 均支持流媒体播放。

  • 简介
  • 转写文稿
  • 在您的网页内容中支持深色模式

    iOS 和 macOS 中全面支持深色模式后,您会想确保自己的网页内容能够根据用户的偏好适当地调整风格。学习相应的技巧,以确保您的内容在 Safari 浏览器中显示时、嵌入到“邮件”等其他 app 中时或者在自己的 app 中使用时都能有最佳的效果。探索响应式网页设计中这一新支柱的相关细节和最佳做法。

    资源

      • 高清视频
      • 标清视频
    • 演示幻灯片 (PDF)

    相关视频

    WWDC22

    • 控制电量:优化电池电量消耗

    WWDC19

    • 在 iOS 上实施深色模式
    • 面向网页开发者的新增内容
  • 搜索此视频…

    大家好 我是 Tim Hatcher WebKit 团队的工程师 我将要介绍的是 网页内容支持深色模式

    macOS Mojave 引入深色模式时 用户和开发者 都自然而然地关注网页内容

    几十年来 网页内容一直都是浅色的 在和新的 支持深色模式的 App 一起使用时 显得特别亮

    WebKit 团队一直都在努力 为开发者提供一个 规范的方法来设计 支持深色模式的网页内容 我很开心地宣布 它在 macOS Mojave 的 Safari 浏览器 12.1 上可用了

    通过 iOS 13 的全系统深色外观 你可以看到 在 iOS Safari 浏览器中 网页内容同样可用深色样式

    在这个视频里 我会用 Safari 浏览器做例子 但是不仅 Safari 浏览器 支持深色模式 邮件和 App 在网页视图里 展示网页内容时 也支持深色模式

    在这个视频里 我想介绍三个方面 一 对网页深色模式的 整体样式支持 二 一些应用到邮件信息的 具体情况 三 调试深色模式下 网页内容的工具

    我们开始吧 我开了一个新博客 记录我最近 在加州的旅行

    在设计网站 让它响应手机和电脑端用户时 正好可以 添加深色模式支持 深色模式可以看作是 响应式网页设计的一个进步 是适应设备环境的 另一种方式 要注意 Safari 浏览器和 WebKit 不会 自动加深网页内容 作为一名网页开发者 是由你决定 深色系统外观下 网页内容的样子 现在我们来看一下 如何将这个浅色页面设计 转换为可用深色模式的网站

    表明内容支持深色模式的 主要方式是 采用新的配色方案属性 现在它被指定 包含在 CSS 标准中 在根节点 指定值 浅色和深色 让渲染引擎知道 这两种模式都被文件支持 这改变了默认文本 和网页的背景色 让它和系统外观一致 标准表单控件 滚动条 和其他命名系统色 也会自动改变

    我们现在来看一下 把这个属性添加到我的博客 会有什么变化

    可以看到 白色背景色变成了黑色 大部分文本 完全消失在黑色背景中 我想要的不是这种效果 我们来看一下 这个页面的样式规则 看看发生了什么

    这就是页面变化部分的 主要样式规则

    文本之所以会消失 是因为在 body 上 黑色被设置为文本颜色 一级标题 被设置为深灰文本色 颜色不够浅 不能和黑色背景区分开 默认 body 的文本颜色 是深色和浅色模式

    因为这是我想要的效果 我可以从样式表上 直接删除颜色属性覆盖 因为我现在用的是 配色方案属性 默认文本和背景色 会自动变成 深色模式值 我要是想保存 样式表上的其他颜色 我可以用 CSS 自定义属性 也被叫做 CSS 变量 集中定义它们 以便在整个网站样式表中 使用这些颜色 使用 CSS 变量会让以后 样式表适应深色模式 变得非常简单 我们来看一下怎么做

    我们只需要把这些颜色值 移动到一个中心位置 比如之前添加到 配色方案的根节点规则

    我们为这些颜色 定义一个变量名 用双连字符前缀标记

    现在我们返回 原本的样式规则 将还在使用的静态色值 改为我们定义了的变量 通过 var 函数引用它们 就像这样 现在这个样式表 就支持深色方案了

    就像不同设备宽度的 响应式设计断点 我们可以用媒体查询 条件化深色模式 具体来说 如果用户目前喜欢深色方案

    我们可以用 适合深色模式的颜色值 重写刚才为浅色模式 定义的变量 现在我们来看一下 应用了这些的 页面是什么样子的

    我们从这儿开始 目前只添加了配色方案属性

    文本和标题颜色 适应了深色外观 但是图片呢 比如这里的 Mojave 沙漠图片

    Mojave 沙漠图片 包含在一个图片节点内 这个节点从服务器上获得 JPEG 我们可以用另一个响应式设计技术 简单地改变这个代码

    具体来说 图片节点 是一个很好的方法 可以基于不同的设备特性 用同样的媒体查询 获得一张图片的多个版本 这里我指定了 Mojave 沙漠夜晚的图片 用的是媒体查询 之前深色模式颜色也用过 这样就可以 为喜欢深色方案的用户 有条件地加载一张夜晚的图片

    一开始是两种配色方案 用同一张图片 现在沙漠图片 会适应深色外观 网站可以是深色和浅色两种外观

    概括一下 你应该用 color-scheme 属性 声明对浅色和深色模式的支持 这会告知渲染引擎 你想将内容设计成什么颜色 它可以改变默认颜色和控件 使颜色相配

    默认颜色对比度不够高时 用 prefers-color-scheme 进行媒体查询 设置自定义值

    你可以在 元素里 对适用深色模式的源 使用相同的媒体查询 和其他响应式图片 在采用配色方案时 可以考虑使用 CSS 变量 这样会使在内容中 保持两种外观模式变得更简单

    接下来我将介绍 深色模式和邮件信息

    正如 macOS Mojave 里的邮件 直接在 iOS 13 邮件里写的 普通邮件信息 既可以是浅色外观 也可以是深色 即便它们像这样 包括内嵌式图片附件 之所以会这样 是因为邮件 将自动变暗 应用到普通邮件信息

    但是 如果你是 一名模板设计者 要设计一个广告 里面包含远程加载图片 你需要采用我刚才介绍的 关于网页内容的设计技术 如果没有采用配色方案属性 邮件就会用浅色外观 展示邮件信息 而不会自动 把自动变深应用到 普通邮件信息

    这是相同的邮件信息 采用的是深色模式设计 包括配色方案声明 现在它可以完美适应 深色系统外观

    概括一下 普通邮件信息 颜色会自动变深 即便它包括 内嵌式图片附件 包含许多远程图片的邮件信息 比如定制邮件营销广告 会默认使用浅色模式

    你可以在营销电邮里 声明支持深色配色方案 用媒体查询处理 自定义颜色和图片自定义

    现在为大家介绍一下 调试深色模式内容的工具 着重介绍 Web Inspector

    当系统是深色模式时 我们在 macOS 中为 Web Inspector 添加了深色外观 这是许多网页开发者的请求 很开心 现在有了深色模式

    不仅是添加了深色外观 还有许多工具 帮你调试深色模式下的 你自己的内容 首先是元素选项卡上 新的配色方案切换键 它会改变页面外观 而你不需要 每次都切换整个系统外观 所以如果你喜欢用深色模式 你可以用这个键快速查看 你的页面在浅色外观下 是什么样子的

    和之前一样 样式侧边栏 展示任何 适合所选元素的样式规则 和任何媒体查询 在这个例子中 你可以看到 WebKit.org 网站上颜色变量的 偏好配色方案 媒体查询定义 这就是深色模式和 Web Inspector 你可以查看其他 关于 Safari 浏览器和 WebKit 的讲演 获取更多关于 Safari 浏览器 13 上 Web Inspector 的信息

    总之 要记住网页 和内容丰富的邮件信息 需要选择变成深色模式 Safari 浏览器和 WebKit 不会自动 让内容变深 对于普通的邮件信息 就不需要担心了 邮件会自动加深它们的颜色 使其与系统外观相配 现在你可以用 Web Inspector 测试浅色模式下你的内容 还可以用元素选项卡中的 新配色方案切换键 测试深色模式 期待看到大家 如何使用这个支持 期待看到在 Mac 和 iOS 上 你们 App 和网站的深色模式是什么样子的

Developer Footer

  • 视频
  • WWDC19
  • 在您的网页内容中支持深色模式
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则