如何才能覆盖仅适用于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文件中覆盖它?
发布于 2013-08-07 01:27:17
你可以使用一个有条件的html标签来添加一个类,如果浏览器通过特定的IE和目标,加载一个只有ie8的样式表,或者使用一个CSS hack \0/来只以IE8为目标。
如果你在IE中只有几个一次性的问题,我建议使用head路线。
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;
}发布于 2013-08-07 01:39:18
对此使用单独的样式表如何?或者,您可以在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的黑客攻击。
https://stackoverflow.com/questions/18086582
复制相似问题