我正在尝试使用我正在处理的网站上的社交分享图标来完成两件事。
首先,我想添加一个投影。然后我想让它们在默认情况下去饱和,并在悬停时着色。
以下是我正在使用的代码:
.a2a_floating_style.a2a_vertical_style img {
-webkit-filter: drop-shadow(6px 6px 6px rgba(0,0,0,0.5));
filter: url(#drop-shadow);
-ms-filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=6, OffY=6, Color='#444')";
filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=6, OffY=6, Color='#444')";
-webkit-transition:all .4s;
-moz-transition:all .4s;
-ms-transition:all .4s;
-o-transition:all .4s;
transition:all .4s;
}
.a2a_floating_style.a2a_vertical_style img:not(:hover) {
-webkit-filter: drop-shadow(6px 6px 6px rgba(0,0,0,0.5));
filter: url(#drop-shadow);
-ms-filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=6, OffY=6, Color='#444')";
filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=6, OffY=6, Color='#444')";
-webkit-filter:grayscale(100%);
-moz-filter:grayscale(100%);
-ms-filter:grayscale(100%);
-o-filter:grayscale(100%);
filter:grayscale(100%);
}
.a2a_floating_style.a2a_vertical_style img:hover {
-webkit-filter: drop-shadow(6px 6px 6px rgba(0,0,0,0.5));
filter: url(#drop-shadow);
-ms-filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=6, OffY=6, Color='#444')";
filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=6, OffY=6, Color='#444')";
-webkit-filter:grayscale(0%);
-moz-filter:grayscale(0%);
-ms-filter:grayscale(0%);
-o-filter:grayscale(0%);
filter:grayscale(0%);
}
它执行饱和位,但不执行投影。如果我删除了去饱和指令,那么投影就可以了。
有没有一种方法我应该组织这个,以便两种效果都有效?
感谢。
答案 0 :(得分:1)
您覆盖过滤器css,而不是向现有过滤器添加过滤器。通过删除一些CSS行,问题变得清晰:
-webkit-filter: drop-shadow(6px 6px 6px rgba(0,0,0,0.5));
-webkit-filter: grayscale(0%);
但是,您可以通过用空格分隔来提供多个过滤器:
-webkit-filter: drop-shadow(6px 6px 6px rgba(0,0,0,0.5)) grayscale(0%);