DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML和Xhtml >> html中塊注釋的使用詳細介紹
html中塊注釋的使用詳細介紹
編輯:HTML和Xhtml     
html中的普通注釋: <!--XXXXXXXX-->,這裡面的XXXXXXXX是注釋內容

html中塊注釋css <!--[if IE]>….<![endif]--> (<!--[if !IE]>||<![endif]

復制代碼代碼如下:
1. <!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]-->
2. <!--[if IE]> 所有的IE可識別 <![endif]-->
3. <!--[if IE 5.0]> 只有IE5.0可以識別 <![endif]-->
4. <!--[if IE 5]> 僅IE5.0與IE5.5可以識別 <![endif]-->
5. <!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以識別 <![endif]-->
6. <!--[if IE 6]> 僅IE6可識別 <![endif]-->
7. <!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]-->
8. <!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]-->
9. <!--[if IE 7]> 僅IE7可識別 <![endif]-->
10. <!--[if lt IE 7]> IE7以及IE7以下版本可識別 <![endif]-->
11. <!--[if gte IE 7]> IE7以及IE7以上版本可識別 <![endif]-->
<!--[if lte IE 6]>……<![endif]-->

Ite:less than or equal to意思是小於或等於IE6浏覽器,用於IE浏覽器的條件注釋,常用於CSShack,針對IE的JS等。

在進行WEB標准網頁的學習和應用過程中,網頁對浏覽器的兼容性是經常接觸到的一個問題。其中因微軟公司的Internet Explorer(簡稱IE)占據浏覽器市場的大半江山,此外還有Firefox、Opera等。需要對這些浏覽器進行兼容。
同時,單就IE而言,因IE版本的升級更替,目前浏覽者使用的主要停留在 IE5(IE5.5)、IE6和IE7這三個版本中。而這3個版本對於我們制作的WEB標准網頁(XHTML+CSS)解釋執行的顯示狀況不盡相同。並 且,其他非IE浏覽器與IE對某些CSS解釋也不一樣。所以,通過IE浏覽器中的專有條件注釋可有針對性的進行相關屬性的定義。
條件注釋只能用於Explorer 5+ Windows(以下簡稱IE)(條件注釋從IE5開始被支持)。如果你安裝了多個IE,條件注釋(Conditional comments)將會以最高版本的IE為標准(目前為IE 7)。

條件注釋只能在windows Internet Explorer(以下簡稱IE)下使用,因此我們可以通過條件注釋來為IE添加特別的指令。
通俗點,條件注釋就是一些if判斷,但這些判斷不是在腳本裡執行的,而是直接在html代碼裡執行的,比如:
<!--[if IE]>
這裡是正常的html代碼
<![endif]-->
1,條件注釋的基本結構和HTML的注釋(<!-- -->)是一樣的。因此IE以外的浏覽器將會把它們看作是普通的注釋而完全忽略它們。
2,IE將會根據if條件來判斷是否如解析普通的頁面內容一樣解析條件注釋裡的內容。
3,條件注釋使用的是HTML的注釋結構,因此他們只能使用在HTML文件裡,而不能在CSS文件中使用。

可使用如下代碼檢測當前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裡的不等於判斷符相同

Conditional comments屬於CSS hack? 條件判斷屬於CSS hack嗎?
嚴格地說是屬於CSS hack。因為就好象其他真正的css hack一樣,它使得我們可以給一些浏覽器賦予特殊的樣式,再則它不依賴於某個浏覽器的BUG來控制另外一個浏覽器(的樣式)。除此之外,條件判斷還能用 來做一些超出CSS HACK范圍的事情(雖然這種情況很少發生)。

因為條件判斷不依賴於某個浏覽器的hack,而是一個經過深思熟慮的特色功能,所以我相信它是可以被放心地使用的。當然,其他浏覽器也有可能支持條件判斷(到目前為止還沒有),但是看起來,他們應該不會使用如<!--[if IE]>這樣的語法。

應該如何應用條件注釋
本文一開始就說明了,因為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文件中使用。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved