條件注釋只能在windows Internet Explorer(以下簡(jiǎn)稱(chēng)IE)下使用,因此我們可以通過(guò)條件注釋來(lái)為IE添加特別的指令。通俗點(diǎn),條件注釋就是一些if判斷,但這些判斷不是在腳本里執行的,而是直接在html代碼里執行的,比如:<!--[if IE]>這里是正常的html代碼<![endif]-->1,條件注釋的基本結構和HTML的注釋(<!-- -->)是一樣的。因此IE以外的瀏覽器將會(huì )把它們看作是普通的注釋而完全忽略它們。2,IE將會(huì )根據if條件來(lái)判斷是否如解析普通的頁(yè)面內容一樣解析條件注釋里的內容。3,條件注釋使用的是HTML的注釋結構,因此他們只能使用在HTML文件里,而不能在CSS文件中使用??墒褂萌缦麓a檢測當前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+的環(huán)境之下,所以<!--[if ls IE 5]>根本不會(huì )被執行。lte:就是Less than or equal to的簡(jiǎn)寫(xiě),也就是小于或等于的意思。lt :就是Less than的簡(jiǎn)寫(xiě),也就是小于的意思。gte:就是Greater than or equal to的簡(jiǎn)寫(xiě),也就是大于或等于的意思。gt :就是Greater than的簡(jiǎn)寫(xiě),也就是大于的意思。! :就是不等于的意思,跟javascript里的不等于判斷符相同Conditional comments屬于CSS hack? 條件判斷屬于CSS hack嗎?嚴格地說(shuō)是屬于CSS hack。因為就好象其他真正的css hack一樣,它使得我們可以給一些瀏覽器賦予特殊的樣式,再則它不依賴(lài)于某個(gè)瀏覽器的BUG來(lái)控制另外一個(gè)瀏覽器(的樣式)。除此之外,條件判斷還能用來(lái)做一些超出CSS HACK范圍的事情(雖然這種情況很少發(fā)生)。因為條件判斷不依賴(lài)于某個(gè)瀏覽器的hack,而是一個(gè)經(jīng)過(guò)深思熟慮的特色功能,所以我相信它是可以被放心地使用的。當然,其他瀏覽器也有可能支持條件判斷(到目前為止還沒(méi)有),但是看起來(lái),他們應該不會(huì )使用如<!--[if IE]>這樣的語(yǔ)法。應該如何應用條件注釋本文一開(kāi)始就說(shuō)明了,因為IE各版本的瀏覽器對我們制作的WEB標準的頁(yè)面解釋不一樣,具體就是對CSS的解釋不同,我們?yōu)榱思嫒葸@些,可運用條件注釋來(lái)各自定義,最終達到兼容的目的。比如:<!-- 默認先調用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的執行,達到兼容的目的。同時(shí),首行默認的css.css還能與其他非IE瀏覽器實(shí)現兼容。注意:默認的CSS樣式應該位于HTML文檔的首行,進(jìn)行條件注釋判斷的所有內容必須位于該默認樣式之后。比如如下代碼,在IE瀏覽器下執行顯示為紅色,而在非IE瀏覽器下顯示為黑色。如果把條件注釋判斷放在首行,則不能實(shí)現。該例題很能說(shuō)明網(wǎng)頁(yè)對IE瀏覽器和非IE瀏覽器間的兼容性問(wèn)題解決。<style type="text/css">body{background-color: #000;}</style><!--[if IE]><style type="text/css">body{background-color: #F00;}</style><![endif]-->同時(shí),有人會(huì )試圖使用<!--[if !IE]>來(lái)定義非IE瀏覽器下的狀況,但注意:條件注釋只有在IE瀏覽器下才能執行,這個(gè)代碼在非IE瀏覽下非單不是執行該條件下的定義,而是當做注釋視而不見(jiàn)。正常就是默認的樣式,對IE瀏覽器需要特殊處理的,才進(jìn)行條件注釋。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。