如何让我的 CSS 代码在 Firefox 和 IE 上运行

Posted

技术标签:

【中文标题】如何让我的 CSS 代码在 Firefox 和 IE 上运行【英文标题】:How can I get my CSS code to work on Firefox and IE 【发布时间】:2017-09-17 16:43:17 【问题描述】:

我有一个从灰度到彩色的图像悬停,适用于我网站中的所有图像。它在 Safari 和 Google 中完美运行,但在 Firefox 和 Internet Explorer 中则根本无法运行。代码如下:

img 
  -webkit-filter: grayscale(100%); /* For Webkit browsers */
  -webkit-transition: .5s ease-in-out; /* For Webkit browsers */
  -moz-filter: grayscale(100%); /* For Firefox */
  -moz-transition: .5s ease-in-out; /* For FireFox */
  -o-filter: grayscale(100%);
  -o-transition: .5s ease-in-out;
 

img:hover 
  -webkit-filter: grayscale(0%); /* For Webkit browsers */
  -webkit-transition: .5s ease-in-out; /* For Webkit browsers */
  -moz-filter: grayscale(0%); /* For Firefox */
  -moz-transition: .5s ease-in-out; /* For Firefox */
  -o-filter: grayscale(0%); 
  -o-transition: .5s ease-in-out;

我确信这很简单,但不确定是什么。 谢谢,秋天

【问题讨论】:

【参考方案1】:

Firefox 可能已经弃用了供应商前缀,并且 IE 没有前缀。试试这个:

img 
    filter: grayscale(100%); /* For modern browsers */
    transition: .5s ease-in-out; /* For modern browsers */
    -webkit-filter: grayscale(100%); /* For Webkit browsers */
    -webkit-transition: .5s ease-in-out; /* For Webkit browsers */
    -o-filter: grayscale(100%); /* For Opera */
    -o-transition: .5s ease-in-out; /* For Opera */
 

img:hover 
    filter: grayscale(0%); /* For modern browsers */
    transition: .5s ease-in-out; /* For modern browsers */
    -webkit-filter: grayscale(0%); /* For Webkit browsers */
    -webkit-transition: .5s ease-in-out; /* For Webkit browsers */
    -o-filter: grayscale(0%); /* For Opera */
    -o-transition: .5s ease-in-out; /* For Opera */

【讨论】:

谢谢,它现在可以在 Firefox 中运行,但在 IE 中没有运气。 好的,一倒,一走。哪个版本的 IE? 实际上,我认为版本无关紧要 - IE 不支持任何版本的 CSS 过滤器,caniuse.com/#feat=css-filters 您可以尝试 javascript 解决方案,如下所述:ajaxblender.com/…【参考方案2】:

另外 - 因为这是我的代码中的样子 - 尝试为 Internet Explorer 添加这些过滤器转换:

-ms-filter: grayscale(100%);
-ms-transition: .5s ease-in-out;

-ms-filter: grayscale(0);
-ms-transition: .5s ease-in-out

添加那些应该添加对IE的支持;这些转换和过滤器刚刚在 Microsoft Edge 中成功测试,我猜应该使用与 IE 相同的前缀。

【讨论】:

供应商前缀不是这样工作的。你不能只对所有东西都加上 -ms- 来让它工作。 好吧,我没有“打它”。 -ms- 前缀在 Edge 浏览器中进行了测试,鉴于 IE 和 Edge 都是 Microsoft 产品,它们不会使用相同的供应商前缀吗?悬停效果有效。 @Mr Lister 我绝对不是想在这里开始战斗,我只是脱离我自己对前缀的理解。 Microsoft Developer Network (msdn.microsoft.com/en-us/library/ms530752(v=vs.85).aspx) 有一篇文章描述了 -ms-filter 前缀的存在。但是,结合您所说的,此功能在 IE 9 中已弃用,并在 IE 10 中删除。但是,如果 OP 想要保留对旧浏览器版本的旧支持,则可能值得考虑。就过渡而言,我不确定。把它扔出去! 我忘记了那个。对不起。但这完全是另一个属性,与标准 filter 无关,不应用作它的别名。

以上是关于如何让我的 CSS 代码在 Firefox 和 IE 上运行的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的 CSS @media 代码在移动设备上运行以使我的网站具有响应性?

如何让我的 CSS 文本标题淡入淡出?

如何让我的网站在 Firefox 的书签工具栏中显示一个网站图标?

我的动画 CSS 不适用于 Firefox 和 IE

如何在 Firefox / Firebug 中美化 JavaScript 和 CSS?

Firefox 和 Internet Explorer 下面的 CSS 代码不起作用。我如何解决它?