1. 程式人生 > >IE的條件註釋判斷瀏覽器類別

IE的條件註釋判斷瀏覽器類別

<!--[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裡的不等於判斷符相同
(2)

應該如何應用條件註釋
    本文一開始就說明了,因為IE各版本的瀏覽器對我們製作的WEB標準的頁面解釋不一樣,具體就是對CSS的解釋不同,我們為了相容這些,可運用條件註釋來各自定義,最終達到相容的目的。比如:
<!–- 預設先呼叫css.css樣式表 –->

<link rel="stylesheet" type="text/css" href="css.css" />
<!-–[if IE 7]>

<!–- 如果IE瀏覽器版是7,呼叫ie7.css樣式表- –>

<link rel="stylesheet" type="text/css" href="ie7.css" />
<![endif]–->

<!–-[if lte IE 6]>

<!–- 如果IE瀏覽器版本小於等於6,呼叫ie.css樣式表 -–>

<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]–>

    這其中就區分了IE7和IE6向下的瀏覽器對CSS的執行,達到相容的目的。同時,首行預設的css.css還能與其他非IE瀏覽器實現相容。

    注意:預設的CSS樣式應該位於HTML文件的首行,進行條件註釋判斷的所有內容必須位於該預設樣式之後。
    比如如下程式碼,在IE瀏覽器下執行顯示為紅色,而在非IE瀏覽器下顯示為黑色。如果把條件註釋判斷放在首行,則不能實現。該例題很能說明網頁對IE瀏覽器和非IE瀏覽器間的相容性問題解決。
<style type="text/css">
body{
background-color: #000;
}
</style>
<!-–[if IE]>

<style type="text/css">
body{
background-color: #F00;
}
</style>
<![endif]–->


    同時,有人會試圖使用<!–-[if !IE]>來定義非IE瀏覽器下的狀況,但注意:條件註釋只有在IE瀏覽器下才能執行,這個程式碼在非IE瀏覽下非單不是執行該條件下的定義,而是當做註釋視而不見。

    正常就是預設的樣式,對IE瀏覽器需要特殊處理的,才進行條件註釋。在HTML檔案裡,而不能在CSS檔案中使用。