Css 除了img,是否可以将整个页面转换为灰度?

Css 除了img,是否可以将整个页面转换为灰度?,css,Css,我试过了,但没用: body { -webkit-filter: grayscale(100%); } img { -webkit-filter: none !important; } 过滤器的工作方式如下:首先,它将渲染所有元素,并应用来自父级的过滤器 因为您将灰度设置为body。它不会重新应用于您的img 解决方案: 不要应用于body,而是应用于所有需要的div并保留img。如另一个答案中所述,将灰度应用于除图像以外的所有元素 body*:非(img){ -webkit

我试过了,但没用:

body {
    -webkit-filter: grayscale(100%);
}
img {
    -webkit-filter: none !important;
}

过滤器的工作方式如下:首先,它将渲染所有元素,并应用来自父级的过滤器

因为您将
灰度设置为body。它不会重新应用于您的
img

解决方案:


不要应用于body,而是应用于所有需要的div并保留img。

如另一个答案中所述,将灰度应用于除图像以外的所有元素

body*:非(img){
-webkit过滤器:灰度(100%);
滤镜:灰度(100%);
}
h1{
颜色:红色;
}
img{
浮动:左;
}
p{
颜色:绿色;
}
菲尔真棒
Lorem ipsum dolor sit amet,奉献精英。可能是腐败的罪魁祸首,当然不是。图像是主体内容的一部分,因此它被转换为灰度。说“不要再次将我转换为灰度”不会使它再次着色。CSS过滤器没有标准,而且当前的实现似乎不允许在应用后从某些元素中删除灰度过滤器。这种情况在将来可能会改变,但现在就是这样。