css 媒体查询以针对除 IE 之外的所有浏览器

Posted

技术标签:

【中文标题】css 媒体查询以针对除 IE 之外的所有浏览器【英文标题】:css media query to target all browsers except for IE 【发布时间】:2014-09-29 04:08:36 【问题描述】:

我正在寻找一个针对除 IE 之外的所有浏览器的媒体查询。

例如:

    @media (........) 

    

有没有办法做到这一点?

我正在使用 sass-bootstrap,所以那里可能有一个选项。

谢谢!

这是在 IE 中不起作用的代码:

.animations 
    .legend 
        stroke-dasharray: 1000;
        stroke-dashoffset: 1000;
        animation: internetmarketing 3s linear forwards;
    
    .line 
        stroke-dasharray: 1000;
        stroke-dashoffset: 1000;
        animation: internetmarketing 3s linear forwards;
        animation-delay: 2s;
    


@keyframes internetmarketing 
    to 
        stroke-dashoffset: 0;
    

【问题讨论】:

媒体查询不能针对浏览器。您到底想完成什么?为什么必须阻止 IE 而不管其版本如何? 我已经制作了一些关键帧,但它们在 IE 中不起作用。我考虑过使用媒体查询来禁用它们。也许通过触发动画的javascript在其他浏览器中添加一个类是一个好习惯。我将在下面发布关键帧。 如果关键帧不起作用,为什么需要禁用它们?他们有什么害处吗? 折线中有一些 display="none" 属性,因为动画在用户向下滚动时开始。在 IE 中什么都看不到。也许我应该在不在 IE 中时添加这些属性。 我用javascript添加动画来修复它,对IE有一个例外。谢谢大家! 【参考方案1】:

html5 Boilerplate中有一个很好的技巧,你应该试试:)

您应该在 HTML 的顶部插入以下代码:

<!doctype html>
<!--[if lt IE 8]> <html class="no-js ie ie8 ie7"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie ie8 no-ie7"> <![endif]-->
<!--[if gt IE 8]>    <html class="no-js ie no-ie8 no-ie7"> <![endif]-->
<!--[if !IE]><!--> <html class="no-js no-ie"> <!--<![endif]-->
<head> 

现在您可以为非 IE 浏览器隐藏或样式化您的页面:

.no-ie 
   .animations 
      .legend 
          stroke-dasharray: 1000;
          stroke-dashoffset: 1000;
          animation: internetmarketing 3s linear forwards;
      
     .line 
          stroke-dasharray: 1000;
          stroke-dashoffset: 1000;
          animation: internetmarketing 3s linear forwards;
          animation-delay: 2s;
      
  

据我所知,它适用于所有浏览器

【讨论】:

这不适用于 IE 11,因为不再支持此条件!

以上是关于css 媒体查询以针对除 IE 之外的所有浏览器的主要内容,如果未能解决你的问题,请参考以下文章

CSS 媒体查询在 IE 9 中不起作用

选择除第一个之外的所有“tr”

IE 的 CSS 选择器限制中如何计算媒体查询?

IE7、IE8支持css3媒体查询[重复]

Safari:媒体查询未按预期宽度触发

SVG 动画:使用 CSS3 媒体查询将 IE10 与其他现代浏览器隔离开来