web跟随系统暗黑模式

html-css06

web跟随系统暗黑模式,第1张

现代的系统windows/mocOS/IOS/Android/Linus等等几乎都支持了整个系统的暗黑色主题与亮色主题模式的选择切换, 现代web浏览器自然也都跟随着加入了这一功能. 那么如何将这些功能应用到我们的实际项目中呢?这里就涉及到新的css样式

当系统支持暗黑模式的时候就会应用到 @media (prefers-color-scheme: dark) 内部的样式

如果有独立分开的css样式文件,可使用js判断是否处于暗黑模式,然后再确定加载那个css样式即可, js获取media信息如下

通过监听matchMedia的change事件可判断用户是否切换了暗黑/亮色模式

效果如下

本文首先介绍了暗黑模式的css样式, 通过使用css的meida查询器设置系统的样式. 然后介绍了通过js查询系统的暗黑模式状态 , 最后介绍了使用js监听系统模式动态变化事件. 能用js控制自然会发挥js的能力,有了更多的可操控性.

基本上就是利用网页选择器,去定位元素查看一些基本的element元素样式。如果遇到hover样式或者其他样式的话。可以点击右侧的hover即可展示,自己细心一点找一下就能找到。

最后根据自己的项目修修补补颜色就好了,我也没有完全按照一些提供的主题去配色。完全根据自己的喜好去进行搭配,然后拖动颜色块去选择合适的颜色。

PS:贴一种一行代码实现dark主题的方案

html{

filter: invert(1) hue-rotate(180deg)

}

CSS filter 属性将模糊或颜色转移等图形效果应用到元素上。滤镜通常用于调整图像、背景和边框的渲染。

对于这种黑暗模式,我们将使用两个滤镜,即 invert 和 hue-rotate

invert滤镜可以帮助反转应用程序的颜色方案,因此,黑色变成了白色,白色变成了黑色,所有颜色也是如此。因此,黑变白,白变黑,所有颜色也是如此。

hue-rotate滤镜可以帮助我们处理所有其他非黑白的颜色。将色调旋转180度,我们确保应用程序的颜色主题不会改变,而只是减弱它的颜色。

<style>

.bg{

width:200px

height:100px

background:url(bottom_bg.jpg)

}

a{

display: block

width:100%

height:100%

}

a:hover{

filter:alpha(opacity=80)

background:#000

opacity:0.5

}

</style>

<div class="bg"><a href="#"></a></div>

用css实现了。。。不过没有渐变效果,要做的话需要js