像许多其他人一样,我真的很讨厌为 IE7 开发,并且通常我使用以下方法:
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="../res/styleie7.css">
<![endif]-->
这针对浏览器版本 IE7,但不是针对 IE7 的文档标准。
对于使用更高版本的 IE(IE8、9、10)但将浏览器设置为使用 IE7 标准的用户,我需要一种方法。有没有办法检测到,而不仅仅是检测浏览器版本?
像许多其他人一样,我真的很讨厌为 IE7 开发,并且通常我使用以下方法:
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="../res/styleie7.css">
<![endif]-->
这针对浏览器版本 IE7,但不是针对 IE7 的文档标准。
对于使用更高版本的 IE(IE8、9、10)但将浏览器设置为使用 IE7 标准的用户,我需要一种方法。有没有办法检测到,而不仅仅是检测浏览器版本?
<!--[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{
}
兼容模式下的 IE8+将在 User-Agent 中发回Trident
,IE7 User-Agent 字符串中不会出现
更一般地说,有些库已经使用了这种逻辑
我通常使用将类属性附加到 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 时,这种方法有效