【问题标题】:ie conditional comments not working in ie10 browser( ie9, ie8, ie9)ie 条件注释在 ie10 浏览器中不起作用(ie9、ie8、ie9)
【发布时间】:2025-12-24 18:40:16
【问题描述】:

我正在使用 Internet Explorer 查看与 ie 相关的设计问题。所以我尝试为 ie 特别编写 ie 条件 cmets,但它不起作用。当我刷新页面时,它的行为就像它的工作(加载时)意味着为 ie 7 编写的 css 可以工作,但是当它完全加载时它消失了。我不知道我的 Internet Explorer 中到底发生了什么。

我知道 ie10 已经为它移除了条件 cmets,但较低版本应该与 ie 条件 cmets 一起运行,对吗?

我使用的是窗口 8,它内置了 ie10 、 ie9 、 ie8 、 ie7 任何帮助将不胜感激。提前致谢。

<!--[if lte IE 7]>

<link href="stylesheets/ie.css" rel="stylesheet">

<![endif]-->

ie.css 的 CSS 代码

.three_columns { width:500px;}

【问题讨论】:

  • 你能显示一些代码吗?
  • 我已经更新了我的代码。
  • 你能澄清一下在哪些浏览器版本中到底发生了什么吗?我不清楚问题是什么
  • 我再次更新了..希望对您有所帮助..我整天都在尝试..仍然有问题..
  • "Inbuilt" in which way - 你是说IETester吗?据我记得,条件 cmets 在 IETester 中无法正常工作。它们将始终“模拟”系统上安装的最新版本的 IE。

标签: internet-explorer


【解决方案1】:

我知道这是一个老问题,但我在 IE8 中测试网站时遇到了同样的问题。

我使用的是 IE10 浏览器并将兼容模式(从开发者工具-F12)更改为 Document mode: 8User agent string: Internet Explorer 8。结果是网页没有加载 shiv 脚本,因为我使用条件 cmets 来定位早于 9 的 IE 版本。

我研究发现 IE10 丢弃了条件 cmets(呃!),但这也影响了该浏览器附带的兼容模式。所以,基本上即使你在这种模式下运行(IE8),IE10 和 IE11 也会忽略所有条件 cmets 并将它们转换为常规 cmets,导致 html5 标签无法识别,因为 shiv.js 没有加载。

简而言之,在 REAL IE8 浏览器中测试您的网站,而不是在 IE10 或 IE11 的兼容模式下。您可以通过 Google 找到许多通过大量浏览器和设备加载网页的网站。

【讨论】:

  • 作为后续微软运行Modern.ie,一个关于测试 IE 的站点。用于测试环境的良好资源集合和免费虚拟机下载。他们删除了条件 cmets(但仍然拥有“仿真”模式)是一种痛苦,但这总比在家中或办公室里放一堆旧机器要好。
【解决方案2】:

IE 10 在 Intranet 上切换到 IE 7。要更改此行为,请参阅:X-UA-Compatible is set to IE=edge, but it still doesn't stop Compatibility Mode

对于测试,您还可以通过按 F12 并手动更改文档兼容性来切换到您想要的任何引擎。

【讨论】:

  • 我正在切换到 ie 7,方法是按 f12 并手动更改兼容性。它在窗口 7 上工作,但现在我有窗口 8,但它不工作
  • 您必须同时更改兼容性和引擎设置。无论出于何种原因,仅更改其中一个都不会触发条件。
【解决方案3】:

我知道这个问题已经很老了,但正如@otinani 已经指出的那样,这是兼容模式的问题。这主要发生在公司的 Intranet 上,但在最坏的情况下,可能会在生产模式下发生在任何已切换 IE 模式的人身上。

简而言之:如果您想安全,请不要使用 cond-cmets,而是使用我为此问题编写的这个库:https://github.com/activenode/IE-Behaviour-Detection-Library

【讨论】: