跳转到内容

超文本标记语言/条件注释

来自 Wikibooks,开放世界中的开放书籍

条件注释是微软 Windows 版 Internet Explorer (IE/win) 4.0 及更高版本对 HTML 的私有扩展。Mac 版 Internet Explorer (IE/mac) 中不提供此功能。它们是处理 Internet Explorer 各个版本中 CSS 错误的一种非常有用的方法。

普通 (X)HTML 注释如下所示

<!-- This text will be ignored by the browser. -->

条件注释在注释中添加了额外的语法。最简单的示例是

<!--[if IE]> This text will be shown by IE/win ver. 5.0 and higher. <![endif]-->

不理解条件注释语法的浏览器会将其视为普通注释处理,即注释内容将被忽略。

可以通过更改 if 后面的表达式来定位 IE/win 的特定版本。例如,要定位主版本号为 5 的任何 IE/win 版本,请使用
<!--[if IE 5]> 此浏览器的主要版本号为 5。 <![endif]-->
文本将在 IE/win 5.0 和 5.5 版本中显示。

要定位特定的版本号,例如 5.0,语法略有不同。

  • <!--[if IE 5.0]> 您正在使用 IE/win 5.0。 <![endif]-->
  • <!--[if IE 5.5000]> 您正在使用 IE/win 5.5。 <![endif]-->
  • <!--[if IE 6.0]> 您正在使用 IE/win 6.0。 <![endif]-->

可以通过在 IE 之前放置运算符来在表达式中使用不等式。运算符为

lt
小于(但至少为 5.0 版,这是支持条件注释的最低版本)
lte
小于或等于(但至少为 5.0 版,这是支持条件注释的最低版本)
gt
大于
gte
大于或等于

示例
<!--[if gte IE 6]> IE/win 6.0 及更高版本将显示此文本。 <![endif]-->

所有表达式都可以通过在前面加上 ! 来取反,例如
<!--[if !gte IE 6]> 支持条件注释的低于 6 版的 IE/win 版本将显示此文本。 <![endif]-->


<!--[if !IE]> 任何理解条件注释的 IE/win 版本都不会显示此文本。其他任何浏览器也不会显示它,因为它们会将其视为普通注释。 <![endif]-->

第二个示例可能看起来毫无意义,但只需稍加修改,就可以安排隐藏 5 版及更高版本的 IE/win 中的文本。
<!--[if !IE]>--> 任何理解条件注释的 IE/win 版本都不会显示此文本。其他浏览器将显示它,因为它们会将其视为夹在两个普通注释之间的文本。 <!--<![endif]-->

以下 HTML 文档是一个工作示例。

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Conditional comments</title>
  </head>
  <body>
    <!--[if !IE]>-->
      <p>This is page is not being viewed with Internet Explorer for Windows version 5.0 or higher.</p>
    <!--<![endif]-->
    <!--[if IE]>
      <p>This is page is being viewed with Internet Explorer for Windows version 5.0 or higher.</p>
    <![endif]-->
  </body>
</html>

与 CSS 结合使用

[编辑 | 编辑源代码]

条件注释可用于向 IE/win 传递其他样式表。这些样式表可以修复 IE/win 中的布局错误。基本思想是

  <head>
    <title>Conditional comments</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <!--[if IE 5]>
    <link rel="stylesheet" type="text/css" href="bugFixForIE5x.css">
    <![endif]-->
  </head>
[编辑 | 编辑源代码]

这些 条件注释测试(位于 Position is Everything 网站)可能有助于您理解条件注释的特性。

华夏公益教科书