2015-10-16 75 views
2

考慮到瀏覽器(本例中爲Internet Explorer)有時無法正確應用複雜CSS規則的問題,如何才能強制進行評估?強制對CSS規則進行評估(解決方法)

甲SAMPE規則:

body[data-some-flag="3"] #someElement .someClass svg stop:first-child { 
    stop-color: #012d71; 
} 

的數據標誌將從JS被設置,造型應該相應地改變。在一些真實世界的應用程序中,這將有時不起作用,但是當打開F11瀏覽器工具並僅在DOM Explorer中選擇節點時,該規則將被應用。

是否有這種瀏覽器問題的常見解決方法?

喜歡的東西

node.recalculateCssRules() 
+0

請提供更多信息(HTML,CSS,JQuery,jsfiddle等)。 – Alex

+0

哪個IE版本?也許是關於複雜的選擇器支持,即使重新使用CSS也不會加載。在這種情況下,您將需要應用較不復雜的CSS選擇器,使用特定於IE的選擇器或者甚至使用JS來手動加載一些CSS屬性。 – sailens

+0

CSS規則通常在IE9-11中正確應用,有時不適用。因爲我可以重做整個HTML和CSS,這樣就不會發生錯誤,但是如果有人知道一個共同的解決方法,我會感興趣。 – andreas

回答

0

什麼工作對我來說是去除該節點,並在同一位置再次插入。

這似乎迫使瀏覽器評估與該節點相關的所有CSS規則。

0

如果你認爲瀏覽器是不是給priotiry你的CSS和其他一些CSS是壓倒一切的話,那麼你可以把!important屬性旁邊強制瀏覽器使用該屬性。

例如:

body[data-some-flag="3"] #someElement .someClass svg stop:first-child { 
    stop-color: #012d71 !important; 
} 
+0

我不是這個意思。如果MY css有錯誤,這將會很有用,但如果瀏覽器的CSS選擇器引擎存在錯誤,則不會有用 – andreas