【问题标题】:CSS only for IE8 compataible mode in IE11CSS 仅适用于 IE11 中的 IE8 兼容模式
【发布时间】:2026-01-18 19:25:08
【问题描述】:

我有一个问题。 我必须在我的网站上更改 css。所有的工作在 IE11 和 IE8 上,但我必须做任何变通方法才能在 IE11 的兼容模式下使用 IE8。我想使用其他 css 来改变元素的位置,但我不知道如何使用它。没有问题只适用于 IE8 或 IE11。但问题是在IE8和IE8兼容模式之间。

我能做什么?

【问题讨论】:

  • 要让它在 IE8 及以下版本中运行,请将其放在标题 <!--[if lt IE 9]> <link rel="stylesheet" type="text/css" href="path/to-your-css/file.css"><![endif]--> 中,然后在 .css 中放置您的 CSS 修复
  • 确保在包含主 css 文件后包含上述内容,对仅包含修复的规则使用相同的 css 规则名称
  • 是的,我知道,但问题在于 IE8 和 IE8 在 IE11 上的仿真 - 在 IE8 上一切正常,但在仿真上却不行。
  • 抱歉,我没有先理解你的问题

标签: css internet-explorer-11 ie8-compatibility-mode


【解决方案1】:

如果您不介意使用 JavaScript,则可以使用以下方法检测 IE11:

if (document.documentMode == 8) { 
    var jscriptVer = Function('return /*@cc_on @_jscript_version@*/;')();
    var is8on11 = jscriptVer == 11;
    if (is8on11) {
        document.documentElement.className += ' is-ie8-on-ie11'
    }
}

保留函数(以便压缩不会删除所需的注释)。不要更改函数中的代码或注释(这样写是为了避免 IE 版本中的一些怪癖)。

然后您可以使用 CSS 覆盖如下规则:

html.is-ie8-on-ie11 .some-target-class {
    width: 20px;
}

【讨论】: