原始CSS文件中的条件IE8样式?

时间:2013-08-06 17:23:06

标签: css internet-explorer-8

如何只为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文件中有条件地覆盖它?

2 个答案:

答案 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