主题换肤——跟随系统

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

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> 
相关推荐
火柴就是我41 分钟前
Android 打包报错 25.0.3
android·前端
BD_Marathon41 分钟前
消息对象中字段的说明
java·前端·python
八荒启·交互动画43 分钟前
Web特效025—用 Canvas 2D 做Web特效的定义与边界:这支画笔能做到哪一步
前端·webgl·网页特效·八荒启-交互动画·八荒启
Ai-_Man1 小时前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
excel1 小时前
Nuxt 中使用 useHead 优化 SEO 与 GEO
前端
IT_陈寒2 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
计算机魔术师2 小时前
Muse Spark跑赢Gemini,但真正的底牌是这种设计
前端
PYB32 小时前
【Web·JS·基础】函数的使用和展运算符...objs
前端·javascript
指针向南3 小时前
Chrome读不了HEIC怎么办:原生解码和WASM两条路
前端·图像处理·人工智能·chrome·计算机视觉·wasm
默_笙3 小时前
🚥 给 RAG 装一台心电监护仪:LangSmith 全链路观测(上)
前端·javascript