仅为非IE浏览器定义样式

时间:2016-02-03 15:25:14

标签: css css3

我在IE中遇到一些模糊效果问题,如果在IE中打开页面,我想删除这些模糊效果

这些样式在不同位置的样式表中定义

最好的方法是什么?

3 个答案:

答案 0 :(得分:2)

尽管Edge在某种意义上是IE的品牌重塑/延续以使其看起来焕然一新,但它仍然是根本不同的,因为它更加半自动且无缝地更新。所以,使用Edge,你不必担心使用旧版本的人,而不是你必须担心的IE。因此,假设您想要定位所有非IE浏览器和Edge,那么以下代码将正常工作。

@supports (top:0){
    /*CSS code put here will only run in non-IE*/
}

一个工作示例:

#mytext:before {
  content: 'You are using IE < 11, or a REALLY outdate version of another browser'
}
@supports (top:0){
  #mytext:after {
    content: 'Horay! You are using A non-IE browser or Edge.'
  }
  #mytext:before {
    display: none;
  }
}
<div id="mytext"></div>

上述代码的工作方式是测试浏览器是否支持@supports。我认为,在许多情况下,如果你在非IE浏览器上使用CSS,那么CSS可能无法在甚至不支持@supports at-rule的浏览器中工作。因此,此方法实现了双重角色:浏览器供应商测试和浏览器支持测试。我使用top:0的原因是因为它可能是普遍支持的最短CSS标签,几乎每个网络程序员都知道它受到普遍支持。除此之外,top:0绝对没有什么特别之处:你可以在那里放置你想要测试的任何标签。

答案 1 :(得分:0)

非IE条件评论有点像黑客,因此与您定位IE时的写法略有不同。

<!--[if !IE]><!-->
<link rel="stylesheet" href="not_ie.css" type="text/css" />
<!--<![endif]-->

非IE浏览器会读取此内容,因为它们会完全忽略条件注释,并且注释会被视为已关闭并附加额外内容。 IE会将其视为“非IE”条件,并避免调用样式表。

答案 2 :(得分:0)

Paul Irish在这里有一个很好的,全面的浏览器特定CSS黑客列表: http://www.paulirish.com/2009/browser-specific-css-hacks/

请注意他在该页面顶部关于使用条件注释的声明,如果您可以编辑标记并且不限于CSS,我个人建议。