我的IE8有问题,所以只有在浏览器不是IE8时我才需要应用一些css
在html中,我可以使用
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
<![endif]-->
<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
<![endif]-->
但我想用CSS
过滤这个有没有办法可以指示浏览器应用这些样式,如果不是的话 IE8 ?
例如,我怎样才能使这个CSS在IE8中没有任何影响?
@font-face{
//some css
}
答案 0 :(得分:2)
条件评论可以使用(<!--[if lte IE 8]><stylesheet><![endif]-->)
,但如果您想在样式表中完成所有操作,那么is a way:
body {
color: red; /* all browsers, of course */
color: green\9; /* IE only */
}
这里最重要的是“\ 9”,它必须是“\ 9”。我不清楚为什么会这样。
编辑:\ 9黑客本身还不够。要排除IE9,您还需要:root
hack:
:root body {
color: red\9; /* IE9 only */
}
除了IE之外的其他浏览器可能支持:root,所以如果你使用它来定位IE9,那么将它与\ 9 hack结合起来。
<强> IE6 强>
最后,我们有下划线黑客,大多数设计师现在都熟悉它。我们使用下划线而不是*符号。这将仅针对Internet Explorer 6.
body {
color: red; /* all browsers, of course */
color : green\9; /* IE8 and below */
*color : yellow; /* IE7 and below */
_color : orange; /* IE6 */
}
了解更多信息
答案 1 :(得分:1)
IE 8 doesn't support media queries - 您可以使用它(只需在一些广泛的媒体查询中插入您的CSS)。
查看browser-specific CSS hacks here或here的列表。 下面我复制粘贴了一些关于IE 8的内容:
/* Everything but IE6-8 */
:root *> #quince { color: red }
/* IE7, IE8 */
#veinte { color/*\**/: blue\9; }
答案 2 :(得分:1)
对于特定版本的IE,最好的方法是在HTML中使用条件注释,就像这样(和你提到的那样):
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie7.css">
<![endif]-->
但是你也可以这样做只为IE 8:
@media \0screen {
body { background: blue; }
}
此处有更多信息:http://keithclark.co.uk/articles/moving-ie-specific-css-into-media-blocks/