我有一些包含带冒号的HTML元素的HTML代码。 span CSS选择器仅在Internet Explorer中为元素设置样式。
我无法更改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;
}
答案 0 :(得分: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>
&#13;
正如您所看到的,CSS中使用命名空间的语法与标记中的语法不同。例如,请参阅MDN上的@namespaces - css。
编辑:不幸的是,只有当文件是真正的XHTML文件时,这才适用于IE。所以这里的片段看起来会失败,但是如果你将它复制并粘贴到带有.xhtml的文件中作为前缀,它将按照需要运行。
Firefox和Chrome适用于HTML或XHTML。
答案 1 :(得分:0)
我最终使用以下CSS来阻止IE / Edge将范围样式应用于:
span:not(rsi:span) {
color: red;
}