CSS 灰度蒙版

CSS Greyscale Masking

我想知道是否可以用灰度部分遮盖 CSS 中的对象。我可以用图像来做到这一点,尽管制作 10% 灰度、11% 灰度等的图像非常困难。

默认左、右90%灰度:

我想要做的事情的一个例子(这代表 50% 灰度蒙版):

我不确定是否有办法对图像的一部分应用滤镜,但我通常使用的方法是简单地复制图像,将滤镜应用于所有图像之一图片,然后只显示每张图片中我想要显示的部分:

#container {
  width:250px;
  height: 250px;
  overflow: hidden;
}

#right, #left {
  max-width: 50%;
  display: inline-block;
  float:right
}

#right img {
 position: relative;
 left: -100%;
}
#left {
    filter: grayscale(100%);
    float: left;
    overflow: hidden;
}
<div id="container">
    <div id="right">
        <img src="https://i.stack.imgur.com/08h6Q.png"/>
    </div>
    <div id="left">
        <img src="https://i.stack.imgur.com/08h6Q.png"/>
    </div>
</div>

你可以对对象做同样的事情,只需将它们放在容器中,让每个容器的宽度成为你想要显示的任何部分,隐藏其余部分。

制作左右两个 div 的背景,并为左侧 div 设置:

背景颜色:灰色; 背景混合模式:相乘;