1

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

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

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

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

4

3 回答 3

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{
}

现在你的 ie10 的 CSS 是

.ie10 .yourclass-or-id{
}
于 2013-10-23T08:25:31.080 回答
0

兼容模式下的 IE8+将在 User-Agent 中发回Trident,IE7 User-Agent 字符串中不会出现

更一般地说,有些库已经使用了这种逻辑

于 2013-10-23T08:26:07.653 回答
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 时,这种方法有效

于 2013-10-23T08:10:07.903 回答