我见过人们在 HTML 中做这样的事情:

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

这是否适用于所有现代浏览器?是否有可与此类 if 语句配合使用的浏览器类型列表?

编辑

谢谢 罗斯. 。有趣的是了解一下 gt、lt、gte 和 lte.

有帮助吗?

解决方案

这适用于所有浏览器,因为除了 IE 之外的任何浏览器都可以看到 <!--IGNORED COMMENT-->. 。如果注释包含条件子句,则只有 IE 才会读取该注释。看一下 本文

您还可以指定 IE 的版本。例如:

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

其他提示

如果您可以使用 Javascript,有以下几种选择:

navigator.appName
navigator.appVersion 

关联

或者通过使用诸如之类的库来实现更强大的功能 jQuery.

最后,您可以使用 浏览器检测 来自 QuirksMode 的对象。

获得浏览器名称和版本后,您可以插入 HTML 以链接到样式表或包含其他标签。

根据 Ross 的回答,您只能使用条件注释来定位 Internet Explorer 渲染引擎;其他浏览器没有类似的构造。例如,您无法编写针对 Firefox 的条件注释,但会被 Internet Explorer 忽略。

我实现与上面示例相同效果的方法是嗅探用户代理字符串。然后我为该浏览器提供合适的 CSS 文件。这并不完美,因为有时人们会更改用户代理字符串以实现兼容性。

针对不同浏览器的另一种方法是利用浏览器特定的技巧。这些特别令人讨厌,因为它们通常依赖于浏览器中的错误,而错误很容易被修复!

在我看来,用户代理嗅探是最好的全面解决方案。

条件注释仅适用于 IE(版本 5 及更高版本)。微软官方文档是 这里. 。如果您打算使用它们,最好的策略是在正常包含之后有条件地包含外部样式表或 javascript 文件。这意味着在 IE 上,特定于 IE 的代码将覆盖其他所有内容。在任何其他浏览器上,代码将被视为注释并被解析器忽略。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top