【问题标题】:firefox svg grayscale issue - image gets blurred and shiftsfirefox svg 灰度问题 - 图像变得模糊和偏移
【发布时间】:2015-12-23 23:12:24
【问题描述】:

我正在使用以下 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,但不知道如何纠正这个小问题!

【问题讨论】:

  • 如果你真的觉得这是问题,请提出错误bugzilla.mozilla.org
  • 这似乎是一个仅在 Firefox 上的错误,当我删除用于 ff 的特定 css 行并添加一些其他悬停样式时,它似乎很好。与跨域 css svg 有什么关系?...但无论如何现在我已经删除了它。
  • 这是你的答案吗? stackoverflow.com/a/32391958/241291

标签: html css


【解决方案1】:

Firefox 和 SVG 灰度之间的问题现在似乎已修复。

查看代码示例:https://jsfiddle.net/tzi/rjotsz0p/


Firefox 从版本 35(2015 年 1 月)开始支持 grayscale() 过滤器,因此您现在可以拥有此代码的更好版本:

.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/

【讨论】:

    猜你喜欢
    • 2012-03-16
    • 1970-01-01
    • 2013-12-22
    • 2017-06-03
    • 2012-02-15
    • 2018-03-22
    • 2014-02-15
    • 2019-04-01
    • 1970-01-01
    相关资源
    最近更新 更多