詳談IE條件注釋

概述
如果你厭煩了為低版本IE寫又臭又長的hack,IE條件注釋將是比較優(yōu)美的解決方法。當(dāng)然條件注釋的功能不僅僅是以上那些功能,除了規(guī)避寫出惡心的hack,它還可以針對(duì)不同的IE版本(IE5.5-9,IE10不支持條件注釋)做出不同的相應(yīng),比如針對(duì)不同IE加載不同的樣式,或者腳本等等,更多的功能等待我們的發(fā)掘和運(yùn)用。
條件注釋簡介
IE中的條件注釋(Conditional comments)對(duì)IE的版本和IE非IE有優(yōu)秀的區(qū)分能力,是WEB設(shè)計(jì)中常用的hack方法。
條件注釋只能用于IE5以上,IE10以上不支持。
如果你安裝了多個(gè)IE,條件注釋將會(huì)以最高版本的IE為標(biāo)準(zhǔn)。
條件注釋的基本結(jié)構(gòu)和HTML的注釋(<!– –>)是一樣的。因此IE以外的瀏覽器將會(huì)把它們看作是普通的注釋而完全忽略它們。
IE將會(huì)根據(jù)if條件來判斷是否如解析普通的頁面內(nèi)容一樣解析條件注釋里的內(nèi)容。
條件注釋語法
項(xiàng)目 | 范例 | 說明 |
---|---|---|
! | [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運(yùn)算符。這是擺立即在前面的功能,操作員,或子表達(dá)式扭轉(zhuǎn)布爾表達(dá)式的意義。 |
lt | [if lt IE 5.5] | The less-than operator. Returns true if the first argument is less than the second argument. 小于運(yùn)算符。如果第一個(gè)參數(shù)小于第二個(gè)參數(shù),則返回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. 小于或等于運(yùn)算。如果第一個(gè)參數(shù)是小于或等于第二個(gè)參數(shù),則返回true。 |
gt | [if gt IE 5] | The greater-than operator. Returns true if the first argument is greater than the second argument. 大于運(yùn)算符。如果第一個(gè)參數(shù)大于第二個(gè)參數(shù),則返回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. 大于或等于運(yùn)算。如果第一個(gè)參數(shù)是大于或等于第二個(gè)參數(shù),則返回true。 |
( ) | [if !(IE 7)] | Subexpression operators. Used in conjunction with boolean operators to create more complex expressions. 子表達(dá)式運(yùn)營商。在與布爾運(yùn)算符用于創(chuàng)建更復(fù)雜的表達(dá)式。 |
& | [if (gt IE 5)&(lt IE 7)] | The AND operator. Returns true if all subexpressions evaluate to true AND運(yùn)算符。如果所有的子表達(dá)式計(jì)算結(jié)果為true,返回true |
| | [if (IE 6)|(IE 7)] | The OR operator. Returns true if any of the subexpressions evaluates to true. OR運(yùn)算符。返回true,如果子表達(dá)式計(jì)算結(jié)果為true。 |
條件注釋使用方法示例
<!–[if IE 5]>僅IE5.5可見<![endif]–>
<!–[if gt IE 5.5]>僅IE 5.5以上可見<![endif]–>
<!–[if lt IE 5.5]>僅IE 5.5以下可見<![endif]–>
<!–[if gte IE 5.5]>IE 5.5及以上可見<![endif]–>
<!–[if lte IE 5.5]>IE 5.5及以下可見<![endif]–>
<!–[if !IE 5.5]>非IE 5.5的IE可見<![endif]–>
條件注釋使用案例
特別提示:
1、有人會(huì)試圖使用<!--[if !IE]>來定義非IE瀏覽器下的狀況,但注意:條件注釋只有在IE瀏覽器下才能執(zhí)行,這個(gè)代碼在非IE瀏覽下被當(dāng)做注釋視而不見。
2、我們通常用IE條件注釋根據(jù)瀏覽器不同載入不同css,從而解決樣式兼容性問題的。其實(shí)它可以做的更多。它可以保護(hù)任何代碼塊——HTML代碼塊、JavaScript代碼塊、服務(wù)器端代碼……看看下面的代碼。
<!--[if IE]>
<script type="text/javascript">
alert("你使用的是IE瀏覽器!");
</script>
<![endif]-->
相關(guān)文章
- 條件注釋是IE特有的一種功能,能對(duì)IE系列產(chǎn)品進(jìn)行單獨(dú)的XHTML代碼處理,注意,主要是針對(duì)XHTML,而非CSS。 條件注釋功能非常強(qiáng)大,可以進(jìn)行true和false判斷,例如:2008-10-17
IE的有條件注釋優(yōu)點(diǎn)和缺點(diǎn)
IE的有條件注釋是一種專有的(因此是非標(biāo)準(zhǔn)的)、對(duì)常規(guī)(X)HTML注釋的Miscrosoft擴(kuò)展。 IE的有條件注釋是一種專有的(因此是非標(biāo)準(zhǔn)的)、對(duì)常規(guī)(X)HTM2009-04-02- IE瀏覽器的條件注釋雖不太常用,卻異常強(qiáng)大,不僅可以用來區(qū)分IE瀏覽器版本2010-03-05
針對(duì)主流瀏覽器的CSS-HACK寫法及IE常用條件注釋
本文將為你總結(jié)CSS針對(duì)各瀏覽器的兼容HACK(以IE6/IE7/IE8 /FF為主),以及IE特有的條件注釋使用方法.2010-07-04- ie10已經(jīng)上線一段時(shí)間了,相信已經(jīng)有一部分前端潮人體驗(yàn)過了,截至到現(xiàn)在,在ie6到ie9的瀏覽器各種各樣的古怪行為,開發(fā)人員不得不使用條件注釋,有條件的類,和其他特定于I2012-12-11
瀏覽器兼容之旅第一站:如何在頁面中創(chuàng)建IE條件注釋
瀏覽器的兼容問題一定處理過不少了,特別是IE6的兼容問題;這一節(jié)主要了解了如何在頁面中創(chuàng)建IE條件注釋,以及其帶來的好處,和所起的作用,需要了解的朋友可以參考下2012-12-27- 使用條件注釋判斷瀏覽器在某些時(shí)候還是比較使用的,比如css 樣式的兼容根據(jù)瀏覽器不同進(jìn)行判斷加載,類似的例子還有好多,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-07-26
使用條件注釋判斷 IE 瀏覽器版本適用于IE5.0及以上版本
IE條件注釋是一種特殊的HTML注釋,這種注釋只有IE5.0及以上版本才能理解,下面為大家介紹下使用條件注釋判斷 IE 瀏覽器版本,感興趣的朋友可以參考下2014-03-31