如何针对ie7标准定位css

时间:2013-10-23 08:06:01

标签: html css internet-explorer cross-browser internet-explorer-7

像许多其他人一样,我真的讨厌为IE7开发,因为我通常使用以下方法:

<!--[if IE 7]>
    <link rel="stylesheet" type="text/css" href="../res/styleie7.css">
<![endif]-->

这是针对IE7的浏览器版本,而不是IE7的文档标准。

我需要一种方法,用户使用更高版本的IE(IE8,9,10),但浏览器设置为使用IE7标准。有没有办法检测到而不只是检测浏览器版本?

3 个答案:

答案 0 :(得分:0)

我通常使用将类属性附加到HTML的方法:

<!--[if IE 7 ]><html class="no-js ie7" lang="en"><![endif]-->
<!--[if IE 8 ]><html class="no-js ie8" lang="en"><![endif]-->
<!--[if IE 9 ]><html class="no-js ie9" lang="en"><![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"> <!--<![endif]-->

通过这种方式,您可以使用IE前缀来定位CSS,例如:

.ie7 .selector {
  properties
 }

例如,当我在IE7模式下运行IE10时,此方法有效

答案 1 :(得分:0)

<!--[if lt IE 7]>  <html lang="en" class="no-js ie lt-ie10 lt-ie9 lt-ie8 lt-ie7 ie6"> <![endif]-->
<!--[if IE 7]>     <html lang="en" class="no-js ie lt-ie10 lt-ie9 lt-ie8 ie7"> <![endif]-->
<!--[if IE 8]>     <html lang="en" class="no-js ie lt-ie10 lt-ie9 ie8"> <![endif]-->
<!--[if IE 9]>     <html lang="en" class="no-js ie lt-ie10 ie9"> <![endif]-->
<!--[if IE 10]>    <html lang="en" class="no-js ie ie10"> <![endif]-->
<!--[if !IE]><!--><html lang="en" class="no-js"><!--<![endif]-->

将此代码放在

之后

现在你对ie7的css是

.ie7 .yourclass-or-id{
}

现在你对ie8的css是

.ie8 .yourclass-or-id{
}

现在你对ie9的css是

.ie9 .yourclass-or-id{
}

现在你的iess的css是

.ie10 .yourclass-or-id{
}

答案 2 :(得分:0)