主题换肤——跟随系统

关于如何实现主题换肤呢,之前已经有一篇文章:

juejin.cn/post/731095...

这篇文章是对之前主题换肤的补充,跟随系统实现主题换肤的功能

最简单的方法:

ini 复制代码
<meta name="color-scheme" content="dark light"> 

而dark和light切换时样式的颜色是根据用户代理样式表中规定的颜色来变化的:

用户代理样式表(User agent stylesheet)是浏览器提供的默认样式表,用来给未显式样式化的 HTML 元素提供基本的样式。当你打开网页时,如果 HTML 文档没有指定某些样式或者没有链接到外部CSS文件,浏览器就会采用这些默认的样式来显示网页内容。这些样式可能包括字体大小、颜色、边距等等,确保即使在没有指定样式时,网页也能有一个基本的、通常可接受的外观。

想了解的可以看一下:

developer.mozilla.org/zh-CN/docs/...

drafts.csswg.org/css-color/#...

嫌自带的颜色太丑,那也可以搭配配合媒体查询的prefers-color-scheme属性去改变个别的颜色:

xml 复制代码
<!DOCTYPE html>
<html lang="en">
    <head> 
        <meta name="color-scheme" content="dark light"> 
        <style> 
            fieldset { 
                background-color: wheat; 
            } 
            
            @media (prefers-color-scheme: dark) { 
                fieldset { 
                    background-color: seagreen; 
                } 
                button {
                    background-color: aqua;
                }
            } 
         </style> 
    </head> 
    <body> 
        <form> 
            <fieldset> 
                <legend>换肤------跟随系统</legend> 
                <button type="button">button</button> 
            </fieldset> 
        </form> 
    </body> 
</html>

完完全全想要自己定制,也可以不加<meta name="color-scheme" content="dark light">,就自己写一套样式,然后用媒体查询的prefers-color-scheme属性将它应用到页面

关于图片如何跟随系统进行颜色变化:

xml 复制代码
<!-- 根据 prefers-color-scheme 为不同模式选择不同图片 --> 
<picture> 
    <source srcset="dark.png" media="(prefers-color-scheme: dark)" /> 
    <source srcset="light.png" media="(prefers-color-scheme: light)" /> 
    <img src="light.png" alt="" /> 
</picture> 
相关推荐
类人_猿42 分钟前
ASP.NET Web(.Net Framework) Http服务器搭建以及IIS站点发布
前端·iis·asp.net·.net·http站点服务器
组态软件4 小时前
web组态软件
前端·后端·物联网·编辑器·html
前端Hardy4 小时前
HTML&CSS:MacBook Air 3D 动画跃然屏上
前端·javascript·css·3d·html
cnsxjean7 小时前
SpringBoot集成Minio实现上传凭证、分片上传、秒传和断点续传
java·前端·spring boot·分布式·后端·中间件·架构
ZL_5677 小时前
uniapp中使用uni-forms实现表单管理,验证表单
前端·javascript·uni-app
沉浮yu大海7 小时前
Vue.js 组件开发:构建可重用且高效的 UI 块
前端·vue.js·ui
代码欢乐豆7 小时前
软件工程第13章小测
服务器·前端·数据库·软件工程
莘薪8 小时前
JQuery -- 第九课
前端·javascript·jquery
好青崧8 小时前
CSS 样式入门:属性全知晓
前端·css·tensorflow
光头程序员9 小时前
工程化开发谷歌插件到底有爽
前端·react·工程化·前端工程化·谷歌插件