使用條件注釋判斷 IE 瀏覽器版本

2022-03-30 19:02:49 字數 1144 閱讀 2387

ie條件注釋是一種特殊的html注釋,這種注釋只有ie5.0及以上版本才能理解。比如普通的html注釋是:

而只有ie可讀的ie條件注釋是:

「非ie條件注釋」:

non-ie html code
「非特定版本ie條件注釋」(很少用到):

code for browsers that match the if condition
簡而言之,除了「windows上的ie」之外的所有瀏覽器都會認為條件注釋只是一段普通的html注釋。你不能在css**中使用條件注釋。ie條件注釋是很有用的對ie隱藏或者展現特定**的方法,比起在css中用詭異的_/製造bug,利用ie條件注釋來寫css 「hacks」是更合理的方法。通俗點,條件注釋就是一些if判斷,但這些判斷不是在指令碼裡執行的,而是直接在html**裡執行的。

條件注釋的基本結構和html的注釋()是一樣的。因此ie以外的瀏覽器將會把它們看作是普通的注釋而完全忽略它們。

ie將會根據if條件來判斷是否如解析普通的頁面內容一樣解析條件注釋裡的內容。

條件注釋使用的是html的注釋結構,因此他們只能使用在html檔案裡,而不能在css檔案中使用。

從語法上看這是相當合法的普通html注釋。任何瀏覽器都會認為之間的部分是注釋從而忽略它。但是ie也會看到其中[if ie]>,從而開始解釋接下來的**直到遇到通過「比較操作符」可以更靈活地對ie版本進行控制,用法是在ie前面加上「比較操作符」。合法的操作符如下:

示例:雖然看上去當你第一次使用條件注釋的時候會更費時,但當你以後除錯你的css的時候,就會發現非常方便。用條件注釋你只需要寫一遍html注釋,而用bug你需要為每一條規則都寫上又長又醜的**,而且還經常是為了改變其他的hacks而寫的hacks。除此之外條件注釋對於不支援它的任何瀏覽器而言都是合法的html注釋。以下為條件注釋與css hacks的一些區別:

hacks是基於瀏覽器的bug,而這些bug最終可能會被修復。

條件注釋是基於ie特定**,這種識別機制任何時候都不會被移除。

每乙個瀏覽器都能看見你的hacks,或許下乙個版本或者乙個新的瀏覽器會在你的hacks**上出錯。

hacks不能確保對哪些瀏覽器生效而對哪些不,用的hacks越多,**越混亂。

條件注釋利用版本匹配使得作者可以容易地對特定版本寫**。

條件注釋判斷IE瀏覽器

我們把對ie的判斷放在第一,因為ie的使用者最多,其次是判斷firefox。按使用者多少的順序來判斷瀏覽器型別,可以提高判斷效率,少做無用功。之所以將chrome放在第三判斷,是因為我們 chrome很快會成為市場占有率第三的瀏覽器。其中,在分析瀏覽器版本時,用到了正規表示式來析取其中的版本資訊。除...

收集 條件注釋判斷瀏覽器版本

除ie外都可識別 專案範例說明 if ie not運算子。這是擺立即在前面的功能,操作員,或子表示式扭轉布林表示式的意義。lt if lt ie 5.5 小於運算子。如果第乙個引數小於第二個引數,則返回true。lte if lte ie 6 小於或等於運算。如果第乙個引數是小於或等於第二個引數,則...

IE瀏覽器版本判斷

最近一直在用less寫css,因為在低版本ie 6 8 中需要引入乙個fix的js,用於填補低版本ie的相容性問題。每次寫東西都要引用兩個js挺麻煩的,就想寫乙個簡單的版本判斷來自動管理shim指令碼。因為我的ie已經公升級到11,之前常用的ie判斷方式 v1 activex 等在ie11裡都宣布失...