2016-08-11 57 views
0

我有一些HTML代碼包含帶冒號的HTML元素。 span CSS選擇器僅在Internet Explorer中對元素進行樣式設置。Internet Explorer錯誤地使用冒號設置HTML元素的樣式

我無法更改HTML代碼,並正在尋找一種方式,具有IE不得將跨度選擇此元素...

HTML:

<rsi:span> 
    <rsi:span> 
     <rsi:span>Name </rsi:span> 
     <rsi:span>that </rsi:span> 
     <rsi:span>tune</rsi:span> 
    </rsi:span>     
</rsi:span> 

CSS:

span { 
    color: red; 
} 
+2

有沒有這樣的元素作爲'' ......究竟是你想幹什麼 –

+0

我有一個將這些''標籤注入DOM的第三方工具。我試圖讓IE瀏覽器不使用'span {color:red}'樣式編寫''元素' – Jagger

+1

您確定這是HTML而不是XML嗎? – BoltClock

回答

0

rsi前綴看起來應該是一個命名空間。注入此代碼的例程是否也提供了實際的名稱空間URL?

如果您有類似的信息,請將名稱空間信息粘貼到HTML的開始標記中,並在CSS中使用它。

<!DOCTYPE html> 
 
<!-- use the namespace attribute --> 
 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:rsi="(stuff)" xml:lang="en"> 
 
<head> 
 
    <title>Test rsi namespace</title> 
 
    <style> 
 
    @namespace rsi '(stuff)'; /* define same namespace in the CSS */ 
 
    span {color:red}   /* your original code here */ 
 
    rsi|span {color:inherit} /* namespaced span needs styles reverted */ 
 
    </style> 
 
</head> 
 

 
<body> 
 
    <span>This is a normal span</span> 
 
    <rsi:span> 
 
    <rsi:span> 
 
    <rsi:span>Name </rsi:span> 
 
    <rsi:span>that </rsi:span> 
 
    <rsi:span>tune</rsi:span> 
 
    </rsi:span>     
 
    </rsi:span> 
 
</body> 
 
</html>

正如你所看到的,對於使用命名空間的語法是在CSS比標記不同。請參閱MDN上的@namespaces - css

編輯:不幸的是,只有當文件是一個真正的XHTML文件時,它才能在IE中使用。因此,此處的代碼片段看起來會失敗,但如果將其複製並粘貼到帶有.xhtml前綴的文件中,它將按需要運行。
火狐瀏覽器和Chrome瀏覽器都支持HTML或XHTML。

0

我結束了使用以下CSS來防止IE /邊緣從應用跨度造型到:

span:not(rsi:span) { 
    color: red; 
}