浏览器在系统主题切换时会自动重选并替换图片,前提是顺序正确(暗色在前)、media属性语法完整,且必须有src、alt且非自闭合。

顺序和语法必须严格正确
暗色
<source media="(prefers-color-scheme: dark)" srcset="logo-dark.png"></source><source media="(prefers-color-scheme: light)" srcset="logo-light.png"></source>- 不能写成
media="dark"或media="prefers-color-scheme: dark"(缺括号和括号) - 顺序颠倒(亮色在前)在 Safari 中会导致暗色规则被忽略
必须保留合法的
fallback
不是可选项,是必需节点,且需满足三项:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 必须有
src(不能为空或仅占位符) - 必须有
alt(语义与可访问性要求) - 不能省略,也不能写成自闭合
<img>
这个替换当前
验证是否真生效的两个实操方法
- 打开开发者工具 → Network 面板,切主题,看加载的是 dark 还是 light 的 URL;确认该路径返回 200
- 在 Elements 面板中右键暗色
→ “Break on attribute change”,再切换系统主题;若断点触发,说明浏览器识别并重选了资源
不支持 prefers-color-scheme 的环境自然降级
旧版 Safari、部分安卓 WebView 或禁用媒体查询的设置下,所有 无需 polyfill,也不建议用 JS 拦截重写——那样反而引入闪屏、重复加载和尺寸错位风险。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










