h5通过css进行深色模式切换

html-css013

h5通过css进行深色模式切换,第1张

prefers-color-scheme ( https://developer.mozilla.org/zh-CN/docs/Web/CSS/@media/prefers-color-scheme ) 是一种用于检测用户是否有将系统的主题色设置为亮色或者暗色的 CSS 媒体特性。利用其设置不同主题模式下的 CSS 样式,浏览器会自动根据当前系统主题加载对应的 CSS 样式。light 适配浅色主题,dark 适配深色主题,no-preference 表示获取不到主题时的适配方案。

浅色模式效果如图:

深色模式效果如图:

window.matchMedia ( https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia ) 方法可以用来查询指定的媒体查询字符串解析后的结果。结合 CSS 变量和 matchMedia 的查询结果,设置对应的 CSS 主题颜色。该方法更灵活,可以单独抽离主题色进行适配,深色模式匹配 (prefers-color-scheme: dark) ,浅色模式匹配 (prefers-color-scheme: light) 。

监听主题模式,深色模式时为 body 添加类名 dark,根据 CSS 变量的响应式布局特点,自动生效 dark 类名下的 CSS。

浅色模式效果如图:

深色模式效果如图:

CSS 的出现, 实现了网页的结构和样式分离。美容师!

CSS 规则由两个主要的部分构成: 选择器, 以及一条或多条声明

CSS 规则由两个主要的部分构成: 选择器, 以及一条或多条声明

以内嵌式样式表为例

vs code快捷键: ctrl+/

CSS的英文可以大写,也可以小写

建议全部小写!

颜色名就是使用颜色的英文单词进行表示

更多的颜色名可以通过查询手册得到

颜色值指使用具体颜色的数值表示。 包括: rgb 模式和十六进制模式写法

常用颜色的 rgb 色值:

常用颜色的十六进制色值:

注: 十六进制颜色值简写模式: 如果红、 绿、 蓝三个原色的色值每一个都是由重叠的数字组成, 可以将重叠的数字简化成一个进行书写。 如: 红色 #f00

如果不设置字体属性, 不同的浏览器有自己的默认字体

首选字体需要根据设计图确定, 最后需要设置备用字体

缺点: id 选择器只能实现单选, 不能帮我们完成多选的功能

原子类: 在css中提前设置一些类名, 每个类选择器后面只添加一条css样式属性, 这些属性会在页面中常被使用, 后期可以不需要多次书写属性, 只要将对应的类名添加给需要的标签即可

实际工作中, 通常我们有一个使用规律: 类上样式(CSS), id 上行为(JavaScript)

优点: 减少 class 属性的使用, 选择效率更高

继承性是一个很好的性质, 可以将页面中出现最多的文字样式设置给一个较大的祖先级标签比如 <body>, 后期所有的后代标签都可以从 <body>进行继承

在css中使用rgba(255, 255, 255, 0.5)这样的格式来表示rgha。其中最后一个参数表示Alpha通道,表示透明度。

例如:给两个div添加一样的背景色设置不同的透明度

代码:

<div class="div1">rgba透明度0.4</div>

<div class="div2">rgba透明度0.6</div>

css:

div{

margin:10px auto

width:200px

height:100px

text-align: center

line-height: 90px

}

.div1{background: rgba(83,172,150,0.4)}

.div2{background: rgba(83,172,150,0.8)}

效果: