標籤:
我們常常會在網頁的HTML裡面看到形如[if lte IE 9]……[endif]的代碼,表示的是限定某些瀏覽器版本才能執行的語句,那麼這些判斷語句的規則是什麼呢?請看下文:
<!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]-->
<!--[if IE]> 所有的IE可識別 <![endif]-->
<!--[if IE 6]> 僅IE6可識別 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]-->
<!--[if IE 7]> 僅IE7可識別 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可識別 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可識別 <![endif]-->
<!--[if IE 8]> 僅IE8可識別 <![endif]-->
<!--[if IE 9]> 僅IE9可識別 <![endif]-->
| 項目 |
範例 |
說明 |
| ! |
[if !IE] |
The NOT operator. This is placed immediately in front of the feature, operator, or subexpression to reverse the Boolean meaning of the expression. NOT運算子。這是擺立即在前面的功能,操作員,或子運算式扭轉布林運算式的意義。 |
| lt |
[if lt IE 5.5] |
The less-than operator. Returns true if the first argument is less than the second argument. 小於運算子。如果第一個參數小於第二個參數,則返回true。 |
| lte |
[if lte IE 6] |
The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument. 小於或等於運算。如果第一個參數是小於或等於第二個參數,則返回true。 |
| gt |
[if gt IE 5] |
The greater-than operator. Returns true if the first argument is greater than the second argument. 大於運算子。如果第一個參數大於第二個參數,則返回true。 |
| gte |
[if gte IE 7] |
The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument. 大於或等於運算。如果第一個參數是大於或等於第二個參數,則返回true。 |
| ( ) |
[if !(IE 7)] |
Subexpression operators. Used in conjunction with boolean operators to create more complex expressions. 子運算式電訊廠商。在與布林運算子用於建立更複雜的運算式。 |
| & |
[if (gt IE 5)&(lt IE 7)] |
The AND operator. Returns true if all subexpressions evaluate to true AND運算子。如果所有的子運算式計算結果為true,返回true |
| | |
[if (IE 6)|(IE 7)] |
The OR operator. Returns true if any of the subexpressions evaluates to true. OR運算子。返回true,如果子運算式計算結果為true。 |
<!--[if lt IE 9]>
載入CSS1
<!--[else]>
載入CSS2
<![endif]-->
這樣有效是有效,但是用HTML VALIDATOR裡,報錯,因為這個不符合XHTML 1.1的規範,
如果把ELSE語句去掉,則正確.
方法1:
載入CSS2
<!--[if lt IE 9]>
載入CSS1(可以把要重寫的寫在這裡).
<![endif]-->
<!--[if lte IE 6]><![endif]-->IE6及其以下版本可見 <!--[if lte IE 7]><![endif]-->IE7及其以下版本可見 <!--[if IE 6]><![endif]-->只有IE6版本可見 <![if !IE]><![endif]>除了IE以外的版本 <!--[if lt IE 8]><![endif]-->IE8及其以下的版本可見 <!--[if gte IE 7]><![endif]-->IE7及其以下的版本可見 用法:(1)可使用如下代碼檢測當前IE瀏覽器的版本(注意:在非IE瀏覽器中是看不到效果的) <!––[if IE]> <h1>您正在使用IE瀏覽器</h1> <!––[if IE 5]> <h2>版本 5</h2> <![endif]––> <!––[if IE 5.0]> <h2>版本 5.0</h2> <![endif]––> <!––[if IE 5.5]> <h2>版本 5.5</h2> <![endif]––> <!––[if IE 6]> <h2>版本 6</h2> <![endif]––> <!––[if IE 7]> <h2>版本 7</h2> <![endif]––><![endif]––>
那如果當前的瀏覽器是IE,但版本比IE5還低,該怎麼辦呢,可以使用<!–[if ls IE 5]>,當然,根據條件注釋只能在IE5+的環境之下,所以<!–[if ls IE 5]>根本不會被執行。
lte:就是Less than or equal to的簡寫,也就是小於或等於的意思。 lt :就是Less than的簡寫,也就是小於的意思。 gte:就是Greater than or equal to的簡寫,也就是大於或等於的意思。
gt :就是Greater than的簡寫,也就是大於的意思。
! : 就是不等於的意思,跟javascript裡的不等於判斷符相同
HTML的頁面IE注釋