如何只为IE8浏览器覆盖这种样式(我不认为我对IE7用户太过关心,除非标记非常小)?
#menu ul {
margin:0;
padding:0;
width:650px;
}
#menu ul li {
display:inline-block;
width:110px;
padding:15px 10px 15px 10px;
text-align:center;
color:#000;
text-decoration:none;
font-weight:bold;
background:#e5e5c3;
}
显然,IE8及以下版本不会在li元素上显示内联块,所以如何在这个原始CSS文件中有条件地覆盖它?
答案 0 :(得分:5)
你可以使用条件html标签来添加一个类,如果浏览器是IE和目标通过特异性,只加载ie8样式表或使用CSS hack \0/
来定位IE8。
如果您在IE中只有一对一次性问题,我建议使用头部路线。
HTML类方法
在HEAD
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
在你的CSS中
.ie8 #menu ul li {
display:block;
width:110px;
padding:15px 10px 15px 10px;
text-align:center;
color:#000;
text-decoration:none;
font-weight:bold;
background:#e5e5c3;
}
IE8仅样式表方法
加载常用的共享样式后。
<!--[if IE 8]><link href="/css/app-ie8.css" type="text/stylesheet"/> <![endif]-->
IE8 CSS hack
在选择器
之后直接使用\ 0 /#nav li ul {
left: -39px\0/ !important;
}
答案 1 :(得分:0)
如何为此使用单独的样式表。或者你可以在html中使用嵌入式样式,如下所示
<!--[if gte IE 8]>
<style>
#menu ul li{
....
}
</style>
<![endif]-->
或
<!--[if gte IE 8]>
<link rel="stylesheet" type="text/css" href="{path to your ie-8 override css}" />
<![endif]-->
另一个黑客提及here。