DarkMode(4):css滤镜 颜色反转实现深色模式

在《DarkMode(1):产品应用深色模式分析》提过,单纯反转是不行的。但是,把不需要反转的,在反转过来。或者用js,给想要反转的,加上反转样式,再对其他的做微调。这样个人觉得,开发成本是最低的

@media (prefers-color-scheme: dark) {

 // one

 .app{

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

  img,button,.active {

    //filter: brightness(.8) contrast(1.2);

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

  }

 }

 // two

 div:not(.no-invert){

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

 }

 // three

 :not(img) { filter: invert(100%) hue-rotate(180deg); } 

}

老外说:It’s not 100% accurate in my case, because my dark background color is not perfectly black, but it’s better than nothing.

真正实战与项目,一般是这样的

.dark-mode-box {

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


    // 不需要反转的,在反转回去

    // 图片

    img,

    iframe,

    // element 元素

    .el-tag--primary, .el-tag--success, .el-tag--warning, .el-tag--error,

    .el-button--primary, .el-button--primary,

    .invert-restore{

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

    }

    .invert-restore{

        // 反转回去的,里面的东西,在去除反转

        img{

            filter: none;

        }

    }

}

这个也大致可用。这是最省事的办法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容