>同时创建浅色和深色模式似乎令人生畏。 基于@media
管理prefers-color-scheme
>查询,可容纳用户覆盖OS设置,并制定对比鲜明的调色板以访问可访问性,这都增加了复杂性。但是现代CSS大大简化了这一点。
> HTML既提供标准的黑白和黑色主题(尽管经常被CSS重置隐藏)。 白色黑色主题为黑暗模式提供了绝佳的基础,最大程度地减少了对输入和按钮等元素的手动调整的需求。
>>没有任何@media
>查询,只需在root元素上声明color-scheme: light dark;
,可以根据用户的OS首选项启用自动切换即可。 浏览器尊重操作系统的“光”,“黑暗”或“自动”配色方案设置。 这也可以通过html<meta>
标签来实现:<meta content="light dark" name="color-scheme">
>您可以使用JavaScript控制
应用于各个元素,但需要明确声明<meta>
>和color-scheme
>属性以避免继承问题。
color
>默认文本和背景颜色变量background-color
这些主题中的默认“黑色”和“白色”通常略有黑色和灰白色,改善对比度。 这些颜色可作为
的变化,行为与<system-color></system-color>
相似,但是Canvas
>仍然固定为默认文本颜色。
CanvasText
>以下示例演示了更改color-scheme
属性的影响:currentColor
>还有许多其他变量(总计19个)。 MDN提供了一个完整的列表。 但是,浏览器和操作系统不一致存在于其渲染和支持中。 egor kloos的CanvasText
框架跟踪这些变量的当前状态。
声明这两种模式的颜色color-scheme
>
<system-color></system-color>
3。 基于不透明度的方法:system.css
color-mix()
函数:color-mix()
函数可以将颜色与指定比例(例如,color-mix(in oklab, Canvas 75%, RebeccaPurple)
)混合。 这对于维持跨模式的色调和饱和度一致性很有用。与HSL相比
light-dark()
light-dark()
函数(例如,light-dark(lavender, saddlebrown)
)提供了最精确的控制,可以在轻度和深色模式中完全不同的颜色。 它也可以合并color-mix()
。 浏览器支持很高,但可能需要后备。
color-scheme
的优点超过light-dark()
@media
>的几个优点:color-scheme
>
@media prefers-color-scheme
支持。
> 基于JavaScript的配色方案调整可以用来操纵:has()
。 函数提高代码可重复性。<select></select>
:has()
记住用户首选项
在浏览器闭合上清除。 选择取决于用户行为和GDPR合规性注意事项。<meta>
html.style.setProperty()
>可访问性注意事项color-scheme
)少于增强的屏幕读取器兼容性。localStorage
总而言之,现代CSS简化了光和黑暗模式的创建。 拥抱sessionStorage
>,
以上是来到灯光()的详细内容。更多信息请关注PHP中文网其他相关文章!