是否有针对IE10的特定CSS选择器?

时间:2011-09-06 13:55:49

标签: css internet-explorer css-selectors css-hack vendor-prefix

由于IE在版本10中摆脱了条件评论,我迫切需要找到一个专门针对IE10的“CSS hack”。请注意,它必须是选择器才会被“黑客攻击”,而不是CSS属性。

在Mozilla中,您可以使用:

@-moz-document url-prefix() {
  h1 {
    color: red;
  }
}

在Webkit中,您通常会这样做:

@media screen and (-webkit-min-device-pixel-ratio:0) {
  h1 {
    color: blue;
  }
}

我如何在IE10中做类似的事情?

4 个答案:

答案 0 :(得分:33)

以下示例说明了如何执行此操作

/* 
 #ie10 will only be red in MSIE 10, 
 both in high contrast (display setting) and default mode 
*/
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
   #ie10 { color: red; }
}

警告:也可能在IE11 +中使用。

答案 1 :(得分:5)

使用http://rafael.adm.br/css_browser_selector/中的css浏览器选择器,您可以在代码中添加一个简单的+,并从CSS中调出IE10。

查找/msie\s(\d)/并将其更改为/msie\s(\d+)/

现在在CSS中只需在选择器之前添加.ie10,如下所示:

.ie10 .class-name { width: 100px; }
.class-name { width: 90px; }

您现在应该看到IE10呈现100px宽度,所有其他浏览器呈现90px宽度。

答案 2 :(得分:3)

据我所知,不存在这样的CSS选择器。如果你想专门针对IE10,为什么不写一些javascript来设置一个名为body的{​​{1}}元素上的类,然后为IE10创建一个特定的样式?

答案 3 :(得分:2)

我不确定这是否符合您的选择器与属性要求,但我尝试在IE7-9中伪造text-shadow然后关闭IE10中的黑客时想出了以下方法。关键是在IE10中使用新的-ms-animation内容。

.header {
    /* For browsers that support it to add a little more punch to a @font-face */
    text-shadow: rgba(100, 100, 100, 0.5) 0 0 2px;

    /* Make IE7-9 do faux bold instead and then turn down the opacity to match */
    *font-weight: bold;
    font-weight: bold\9;
    *filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);
    opacity: 0.75\9;

    /* Uh oh! We've also caught IE10 in our above hack */

    /* But IE10 supports CSS3 animations. Will a high duration keep CPU usage down? */
    -ms-animation: text-shadow 60s infinite;
}

/* Define the animation */
@-ms-keyframes text-shadow {
    0%, 100% {
        font-weight: normal;
        opacity: 1;
    }
}