條件注釋 (conditional comment) 是於HTML源碼中被 Microsoft Internet Explorer 有條件解釋的語句。條件注釋可被用來向 Internet Explorer 提供及隱藏代碼。
條件注釋最初於微軟的 Internet Explorer 5瀏覽器中出現,並且直至 Internet Explorer 9 均支持。[1]微軟已宣布於 Internet Explorer 10 中以標準模式處理頁面 - 如 HTML5 - 時停止支持,但是舊版網頁使用這種技術(於兼容性視圖)將繼續有效。[2]JScript 條件注釋於 Internet Explorer 4 中被引進,而在 Internet Explorer 10 中繼續受支持,無論於標準模式或者兼容性模式之中,但在 Windows 套用商店應用程式中不受支持。
基本介紹
- 中文名:條件注釋
- 外文名:Conditional comments
- 解釋:一種區分IE瀏覽器版本的語法
- 條件注釋:只能用於IE5以上。
條件注釋簡介,條件注釋屬性,條件注釋寫法,示例,句法,
條件注釋簡介
IE中的條件注釋(Conditional comments)對IE的版本和IE非IE有優秀的區分能力,是WEB設計中常用的hack方法。
條件注釋只能用於IE5以上。
如果你安裝了多個IE,條件注釋將會以最高版本的IE為標準。
條件注釋的基本結構和HTML的注釋(<!– –>)是一樣的。因此IE以外的瀏覽器將會把它們看作是普通的注釋而完全忽略它們。
IE將會根據if條件來判斷是否如解析普通的頁面內容一樣解析條件注釋里的內容。
條件注釋屬性
gt : greater than,選擇條件版本以上版本,不包含條件版本
lt : less than,選擇條件版本以下版本,不包含條件版本
gte : greater than or equal,選擇條件版本以上版本,包含條件版本
lte : less than or equal,選擇條件版本以下版本,包含條件版本
! : 選擇條件版本以外所有版本,無論高低
條件注釋寫法
<!--[if IE]>用於 IE <![endif]-->
<!--[if IE 6]>用於 IE6 <![endif]-->
<!--[if IE 7]>用於 IE7 <![endif]-->
<!--[if IE 8]>用於 IE8 <![endif]-->
<!--[if IE 9]>用於 IE9 <![endif]-->
<!--[if gt IE 6]> 用於 IE6 以上版本<![endif]-->
<!--[if lte IE 7]> 用於 IE7或更低版本 <![endif]-->
<!--[if gte IE 8]>用於 IE8 或更高版本 <![endif]-->
<!--[if lt IE 9]>用於 IE9 以下版本<![endif]-->
<!--[if !IE]> -->用於非 IE <!-- <![endif]-->
示例
這裡是一個演示條件注釋如何工作的簡單示例。
<!--[if IE 6]><p>You are using Internet Explorer 6.</p><![endif]--><!--[if !IE]><!--><p>You are not using Internet Explorer.</p><!--<![endif]-->
句法
有兩種“條件注釋”:下層顯示 (downlevel revealed)和下層隱藏(downlevel hidden)。
每種注釋的基本句法如下表所示。第一條展示的是基本的 HTML 注釋,被包括在內作為比較以及用以說明被每種條件注釋使用的不同句法。
注釋類型 | 句法或可能取值 |
---|---|
標準 HTML 注釋 | <!--Comment content --> |
downlevel-hidden | <!--[ifexpression]>HTML<![endif]--> |
downlevel-revealed | <![ifexpression]>HTML<![endif]> |
於每個條件注釋之中的句法塊內的 HTML 表示任意的 HTML 內容塊,包括腳本。兩種條件注釋均使用條件表達式以指示注釋塊內的內容應該被解析還是被忽略。條件表達式由特性,操作符,和/或決定於其特性的值組成。下表展示了支持的特性並描述了每種特性支持的值。
項目 | 示例 | 說明 |
---|---|---|
IE | [if IE] | 字元串 "IE" 是一種對應於用以瀏覽網頁的 Internet Explorer 的版本的一種特性。 |
value | [if IE 7] | 一個對應於瀏覽器版本的整數或浮點數。返回一個布爾值,版本號和瀏覽器版本相匹配時為 true。更多信息參見版本向量(en:Version vector)。 |
WindowsEdition | [if WindowsEdition] | 適用於 Windows 7 上的 Internet Explorer 8。字元串 "WindowsEdition" 是一種對應於用以瀏覽該網頁的 Microsoft Windows 版本的特性。 |
value | [if WindowsEdition 1] | 一個對應於用以瀏覽該網頁的 Windows 的版本的整數。返回一個布爾值,數值和使用的版本相匹配時為真 true。關於所支持的值和它們所描述的版本的更多信息,參見GetProductInfo 函式的pdwReturnedProductType參數。 |
true | [if true] | 永遠等價於 true. |
false | [if false] | 永遠等價於 false. |
可用於創造條件注釋的算符如下表。
項目 | 示例 | 說明 |
---|---|---|
! | [if!IE] | NOT 運算符。這被放在特性,算符, 或者子表達式的前面以反轉該表達式的布爾值含義。 |
lt | [if lt IE 5.5] | 小於運算符。第一項小於第二項時返回 true。 |
lte | [if lte IE 6] | 小於或等於運算符。第一項小於或等於第二項時返回 true。 |
gt | [if gt IE 5] | 大於運算符。第一項大於第二項時返回 true。 |
gte | [if gte IE 7] | 大於或等於運算符。第一項大於或等於第二項時返回 true。 |
( ) | [if!(IE 7)] | 子表達式運算符。用以連線布爾算符以創造更加複雜的表達式。 |
& | [if (gt IE 5)&(lt IE 7)] | AND 運算符。所有子表達式為真時返回 true。 |
| | [if (IE 6)|(IE 7)] | OR 運算符。子表達式任意一個為真時返回 true。 |