普通的HTML註釋形式是html
<!-- 註釋 -->
而IE5~IE9這5個版本的IE瀏覽器還另外支持一種特殊的if條件註釋(感受有點相似模板渲染時的語法結構)jquery
<!--[if IE]> html語句 <![endif]-->
這樣在處理IE瀏覽器兼容性問題的時候就能夠把hack代碼集中在一塊了,或者其餘意想不到的用途瀏覽器
if條件註釋分爲三種形式spa
一、是否IE(即:!)code
<!--[if IE]> html代碼 <![endif]--> <!--[if !IE]> html代碼 <![endif]-->
二、是哪一個版本的IE(即:=)htm
<!--[if IE 6]> html代碼 <![endif]--> <!--[if IE 8]> html代碼 <![endif]-->
三、是哪一個區間的IE(即:<,<=,>,>=)blog
<!-- IE8如下版本的瀏覽器纔會執行內部的html代碼,如須要包含IE8則使用lte --> <!--[if lt IE 8]> html代碼 <![endif]--> <!-- IE7以上版本的瀏覽器纔會執行內部的html代碼,如須要包含IE7則使用gte --> <!--[if gt IE 7]> html代碼 <![endif]-->
對於條件註釋ip
IE5~IE9的視角是:模板
其餘瀏覽器的視角是:class
那麼若是想要if條件註釋中所謂的html代碼IE5~IE9雖然能識別可是不能執行,而其餘瀏覽器也能識別並執行的話,能夠這樣寫
<!--[if !IE]>--> html代碼 <!--<![endif]-->
思路就是把條件註釋語法結構的前綴和後綴分別給註釋掉,這時
IE5~IE9的視角變成了:
其餘瀏覽器的視角則變成:
就都能識別出中間的代碼了。
我的以爲使用條件註釋的時候的一個注意點
<!--[if !IE]>--> <script src="js/jquery-3.2.1.min.js"></script> <!--<![endif]--> <!--[if IE]> <script src="js/jquery-1.12.4.min.js"></script> <![endif]-->
就是在每一個瀏覽器中上邊兩個中只能使用一個的話必定得記得把IE9考慮進來,由於它也是能識別條件註釋的(感受IE9就是IE向現代高級瀏覽器過渡的東西,CSS3只支持一部分,可是以前IE專有的一些問題照樣存在)