去饱和并添加阴影

时间:2014-09-26 21:04:31

标签: css dropshadow vendor-prefix

我正在尝试使用我正在处理的网站上的社交分享图标来完成两件事。

首先,我想添加一个投影。然后我想让它们在默认情况下去饱和,并在悬停时着色。

以下是我正在使用的代码:

.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%);
}

它执行饱和位,但不执行投影。如果我删除了去饱和指令,那么投影就可以了。

有没有一种方法我应该组织这个,以便两种效果都有效?

感谢。

1 个答案:

答案 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%);