CSS屬性值的相容hack技巧

2021-07-25 10:40:40 字數 2497 閱讀 9572

區分ie10+瀏覽器的屬性hack技巧

哪些css屬性ie10支援,ie9不支援了,除了transition和animation,那就是gradient背景漸變了,於是乎,我們就可以借助多背景,巧妙實現我們的相容效果,核心css**如下:

css**:

.box

@keyframes spin

to }

html**:

雖然ie9支援多背景,但是由於不認識漸變linear-gradient語法,所以,下面那行background:... css**ie9不認識,於是,ie9就是要了上面的loading_blue.gif,從而輕鬆實現css3 animation下的loading效果的向下相容效果。

需要注意的是,下面的background只能是background,雖然理論上使用background-image也是可以的,但是在ie7, ie8瀏覽器下面,background-image如果是個不認識的東西,他們不會認為這行css無效,而是認為你這個背景圖有問題,於是會導致ie7,ie8瀏覽器下連gif loading都實現不出來。

如何巧妙隱藏ie9及其以下瀏覽器版本中的元素

最近遇到乙個專案,設計師設計的一些圖形效果非常適合用css3繪製,其中有斜紋邊框效果,這就導致只能相容到ie10,ie9及其以下瀏覽器還是。

這個例子的html要比上面的loading案例要複雜,由於圖形負責,因此,會有很多的html內容出現,而對於ie9,這些都是不需要的,因為背景圖只需要一層標籤即可。所以,這裡出現了2處需要相容處理的地方,其一,ie10+沒有背景圖;其二,ie9-裡面的子元素要全部沒效果,比方說隱藏。

第乙個相容處理好辦,跟上面的loading處理類似:

.box
關鍵裡面的元素隱藏怎麼辦?有什麼隱藏屬性ie10認識,ie9不認識的?不好意思,沒有,要麼都認識,要麼都不認識。難道沒有什麼處理方法了嗎?有!

我們平時寫css3屬性的時候,習慣性會加私有字首,雖然現在很多屬性都不需要了,比方說:

.box
這種私有字首寫法,本質上就是本文的利用瀏覽器的相容性的向下相容策略。所以,如果瀏覽器之間的屬性支援有私有字首之分,也是可以利用屬性相容性實現向下相容效果的。

ie9和ie10之間需要私有字首區分的css屬性其實為數不多,其中之一就是transform屬性:

也就是ie9瀏覽器下,如果transform不加私有字首是不認識的。好了,我們有思路了,我們可以利用transform來實現我們的隱藏效果。

核心css如下:

.box > div
理論上,上面**就可以滿足我們的需求了。但是,注意的是,transform需要私有字首的瀏覽器是原生的ie9瀏覽器,使用者使用的時候肯定都是使用原生版本的,如果從使用者角度考慮,我們工作到此為止。但是,我們的測試同事很可能就是使用ie11等瀏覽器的向下相容模式看的,要知道,ie11↘ie9的transform不需要-ms-私有字首也能識別,很可能你這裡的實現就會被報bug.

所以,安全起見,我們需要對上面的css做進一步的處理,如下:

.box > div
嘿嘿,雙保險,就算非原生ie9的transform不需要-ms-私有字首,3d transform那肯定是不認識的,於是乎,乙個完美的區分ie10和ie9隱藏的向下相容方案就實現了。

有時候重要的不是技巧本身,而是解決問題的思路。以後,大家如果需要做一些向下相容的處理,不妨就試試這種利用屬性值相容性實現的相容技巧,完全不影響權重,不干擾正常的css複雜度。

有人說他在用:

>–>

還有更多hack 技巧,如:

color:red\9; /*ie8以及以下版本瀏覽器*/

*color:green; /*ie7及其以下版本瀏覽器*/

_color:purple; /*ie6瀏覽器*/

經常這樣用,感覺用的習慣了,這樣的方法有什麼缺點嗎?

你這樣寫應該只是區分ie9以下的瀏覽器

前輩這篇文章總結得很好,這裡有相關的文件 css compatibility in internet explorer :

ie8- 不支援的還有某些單位 (ch, rem, vw…) 能用來作相容

css條件Hack屬性

此段 只能在ie瀏覽器裡面顯示效果如下 比如火狐谷歌就無法使用效果如下 谷歌裡面就無法顯示此段 用於解決瀏覽器相容問題!if條件共包含6種選擇方式 是否 大於 大於或等於 小於 小於或等於 非指定版本 是否 指定是否ie或ie某個版本。關鍵字 空 大於 選擇大於指定版本的ie版本。關鍵字 gt gr...

css屬性相容

選擇ie6及以下。連線線 中劃線 亦可使用,為了避免與某些帶中劃線的屬性混淆,所以使用下劃線 更為合適。選擇ie7及以下。諸如 與 之類的均可使用,不過業界對 的認知度更高 9 選擇ie6 0 選擇ie8 和opera property value 選擇webkit核心瀏覽器 chrome,safa...

CSS教程 CSS相容的技巧

讓你的樣式完美相容各大www.cppcns.com瀏覽器,這個方案主要是用來解決s的,opear是在測試的時候順帶試了一下,結果發現竟然也行,所以順便也解決了。e html e html e html e 經ff2 op9.21 op9.10 sa3.0.3 pwww.cppcns.comc ie7...