條件注釋

條件注釋

條件注釋 (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 套用商店應用程式中不受支持。

條件注釋簡介

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。

相關詞條

熱門詞條

聯絡我們