9

次の CSS を使用して、ホバー時にグレースケール効果を取得しています。Firefox の問題は、画像がわずかにぼやけ、1 ~ 2 ピクセル右にずれることです。なぜこれが起こっているのかわかりません。

これは固有の問題ですか?どうすれば解決できますか?

.zd-stack img:hover {
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
                                         /* Firefox 10+ */
    filter: gray;                        /* IE6-9 */
    -webkit-filter: grayscale(100%);     /* Chrome 19+ & Safari 6+ */
    -webkit-transition: all .6s ease;    /* Fade to color for Chrome and Safari */
    -webkit-backface-visibility: hidden; /* Fix for transition flickering */;
}

CSS を使用したいのですが、この小さな問題を修正する方法がわかりません。

4

1 に答える 1

1

Firefox と SVG グレースケールの間の問題は現在修正されているようです。

コード サンプルのフィドルを参照してください: https://jsfiddle.net/tzi/rjotsz0p/


Firefox はgrayscale()バージョン 35 (2015 年 1 月) からフィルターをサポートしているため、このコードのより優れたバージョンを使用できるようになりました。

.zd-stack img {
    transition: filter .6s ease;         /* Standard (all but IE10+) */
}

.zd-stack img:hover {
    filter: gray;                        /* For IE6-12 */
    filter: grayscale(100%);             /* Standard (only FF35+ & IE13+) */
    -webkit-filter: grayscale(100%);     /* For Chrome, Safari & Opera */
}

この新しいコードのフィドルを参照してください: https://jsfiddle.net/tzi/x6xcx68g/

于 2015-12-23T10:30:27.653 に答える