通过CSS3滤镜的filter中的 drop-shadow将png图片颜色的示例代码

2020年6月9日16:38:02 发表评论 4 人围观

通过CSS3滤镜的filter中的 drop-shadow将png图片颜色的示例代码本方法是通过CSS3滤镜 filter 中的 drop-shadow 将png图片的非透明部分生成任意颜色的投影,然后将原始图片隐藏起来,从而达到改变图片颜色的目的
先看效果图

示例图片

接下来是代码

1
2
3
4

原始图标

可以变色的图标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

.icon {
display: inline-block;
width: 20px; height: 20px;
overflow: hidden;
}
.icon-del {
background: url(delete.png) no-repeat center;
}
.icon > .icon {
position: relative;
left: -20px;
border-right: 20px solid transparent;
-webkit-filter: drop-shadow(通过CSS3滤镜的filter中的 drop-shadow将png图片颜色的示例代码0033FF 20px 0);
filter: drop-shadow(通过CSS3滤镜的filter中的 drop-shadow将png图片颜色的示例代码0033FF 20px 0);
}

注意其中很关键的一处

border-right: 20px solid transparent;

在Chrome浏览器下,如果一个元素的主体部分,无论以何种方式,只要在页面中不可见,其drop-shadow是不可见的;实体部分哪怕有1像素可见,则drop-shadow完全可见。

由于我们使用使用 overflow:hidden 隐藏掉了原始图标,所以导致其投影在Chrome浏览器上是无法正常显示的,我们通过加透明的边框来解决这一点。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: