首页 > 解决方案 > 如果我只能访问样式表,我可以实现暗模式选项吗?

问题描述

我网站的子域使用 cname 记录指向第 3 方资源。支持有限。我对该资源的唯一控制是样式。在页面加载时,它会从主域的根目录中提取样式表。在该样式表中,我可以从我的站点@import 更多样式表,但是从我的站点引用图像、字体等违反了跨域策略,并且它们不会加载。

我想为整个站点实现一个暗模式选项,并将这个子域包含在更改中。实现这一目标的最佳方法是什么?

我可以设置一个cookie或CSS可以以某种方式读取的东西吗?

当用户切换暗模式时,我是否替换整个样式表文件,如果是,我如何克服服务器和浏览器缓存?

我什至想过拥有两个不同的子域,但我知道这行不通,因为两者的样式表必须命名相同并位于同一个地方。

更新:感谢@Ryuno-Ki 的建议。

@media (prefers-color-scheme: dark)是一个好的开始。它将允许我确定用户自己系统的暗模式设置并根据它自动应用 CSS。但我也想为用户提供一种在网站上切换它的方法(因为)。我可以以某种方式从我的主站点操作此属性吗?

标签: cssdarkmode

解决方案


是的,这应该工作。暗模式通常适用于prefers-color-scheme: dark媒体查询。样式表应该允许这样做。

关于图像:它会使网站膨胀,但使用数据 URI 可能会通过跨域策略。


推荐阅读