背景
每年12月13日是国家公祭日,当天不少应用都会切换应用主题为黑白色,以悼念南京大*的受难者
实现方案
通过css过滤器,切换页面风格,给需要修改黑白风格的区域添加filter
filter: grayscale()
注意:
当 filter
不为 none
的时候,该元素或者其子元素具有 absolute
或 fixed
属性,那么它会为其创建一个新的包含块/容器,会造成该 absolute
或 fixed
元素的定位发生变化(就是改变了 absolute
或 fixed
元素的定位<父>元素,变成新创建的元素),即不再相对 viewport
进行定位,而是相对整个网页( body
元素)进行定位。
解决方案:
给html设置filter属性
html{
filter: grayscale()
}
如果是局部配置,就要注意尽量不要在对应模块使用定位属性