Internet Explorer使用冒号错误地设置HTML元素的样式

时间:2016-08-11 18:19:23

标签: html css

我有一些包含带冒号的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;
}

2 个答案:

答案 0 :(得分:0)

rsi前缀看起来应该是命名空间。注入此代码的例程是否也提供了实际的命名空间URL?

如果你有这样的信息,请将命名空间信息粘贴在HTML的开始标记中,并在CSS中使用它。

&#13;
&#13;
<!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;
&#13;
&#13;

正如您所看到的,CSS中使用命名空间的语法与标记中的语法不同。例如,请参阅MDN上的@namespaces - css

编辑:不幸的是,只有当文件是真正的XHTML文件时,这才适用于IE。所以这里的片段看起来会失败,但是如果你将它复制并粘贴到带有.xhtml的文件中作为前缀,它将按照需要运行。
Firefox和Chrome适用于HTML或XHTML。

答案 1 :(得分:0)

我最终使用以下CSS来阻止IE / Edge将范围样式应用于:

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