由于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中做类似的事情?
答案 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;
}
}