You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CSS light-dark()时,如何单独设置亮暗主题的类样式?

解决方案:使用prefers-color-scheme媒体查询实现主题专属类

你需要的是**prefers-color-scheme媒体查询**,它可以精准匹配系统的亮色或暗色主题偏好,完全能实现你想要的按类切换不同主题下背景色的需求,不存在:light这类伪类选择器。

具体实现代码

结合你的需求,对应的CSS规则可以这么写:

:root {
  color-scheme: light dark;
}

body {
  color: light-dark(#333b3c, #efefec);
  background-color: light-dark(#efedea, #223a2c);
}

/* 亮色模式下生效的类 */
@media (prefers-color-scheme: light) {
  .light-bg-red {
    background-color: red;
  }
}

/* 暗色模式下生效的类 */
@media (prefers-color-scheme: dark) {
  .dark-bg-blue {
    background-color: blue;
  }
}

效果说明

当用户添加<div class="light-bg-red dark-bg-blue">时:

  • 系统处于亮色模式时,该元素背景会变成红色
  • 系统切换到暗色模式时,背景自动切换为蓝色

补充说明

light-dark()函数的设计是在单个声明中同时指定明暗主题的属性值,适合全局统一的样式;而如果需要给特定元素单独设置某一主题下的样式,prefers-color-scheme媒体查询是更灵活的选择,它能让你精准控制样式在特定主题下的生效逻辑。

内容的提问来源于stack exchange,提问作者Beautiful Css

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:47:07