超文本标记语言/条件注释
条件注释是微软 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>
条件注释可用于向 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 网站)可能有助于您理解条件注释的特性。