2012-02-10 95 views
2

我正在尋找一個polyfill來將>選擇器添加到IE6。我知道Selectivizr,但我不想把這一切都包含在這一條規則中。有沒有簡單的腳本來做到這一點?我有jQuery,所以可以包含它。JS填充CSS子選擇器到IE6

+1

Selectivizr甚至沒有提及對任何組合器的支持,所以我懷疑包括它在內的工作是否足夠奇怪。一個*做*工作,*做*有一大堆臃腫去與它是[IE7.js](https://code.google.com/p/ie7-js/) – BoltClock 2012-02-10 20:27:31

+0

你可以模仿孩子選擇器使用以下一組規則:'父親孩子{風格:值;}父*孩子{風格:默認值}'。 – 2012-02-10 20:28:54

+0

看看jquery源代碼,他們如何設法在ie6中獲得'>'工作。或者你可以改變你的標記,爲這些孩子元素引入一些類,並忘記所有的壓力。 – Christoph 2012-02-10 20:32:20

回答

3

無論瀏覽器如何,jQuery都可以使用子選擇器。因此,您可以使用jQuery手動將樣式作爲頁面加載類應用。

jQuery('parent>child').addClass('parent-child-class');

+0

此方法可以在某些情況下工作的情況,但它可以很容易地遇到IE6的問題,不支持單個元素上的多個類 – Damon 2012-02-13 16:44:15

1
.example * {background: #00f; } 
.example * * {background: none; } 

這將有類似的結果:

.example > * {background: #00f; } 

但要小心選擇特異性。

更實用的方法是通過JavaScript/jQuery的添加額外的類IE6:

$('.example > *').addClass('example-child'); 
0

我知道了,做這種事情是Dean Edwards' IE7.js library舊版本的IE唯一的其他填充工具。 (和後續庫ie8.js和ie9.js)。

IE7.js是當IE6是當前版本時發佈的庫。它的目的是儘可能多地填充IE6中缺少的新瀏覽器中可用的功能。它被稱爲「IE7.js」作爲一種說法,「在沒有微軟發佈新版本的情況下,這是我強迫IE達到現代標準的嘗試」。

IE8.js和IE9.js隨後發佈,分別在IE7和IE8發佈後不久。

IE7.js確實包含了很多IE6缺少CSS功能的polyfills,包括>選擇器。

如果你不想使用Selectivizr,那麼這是我知道的唯一一個你想做的其他庫。

希望有所幫助。