IE9怪癖模式下css ID开头的下划线没有注册

时间:2011-06-13 04:00:19

标签: css internet-explorer-9 quirks-mode

我有一个动态加载的CSS文件,其中包含一个带有ID的css行:

#__my_css_id{

   width: 100%;
   height: 100%;
   left: 0px;
   top: 0px;
   position: fixed;
   background-color: #202020;
}

我无法更改此页面以怪异模式呈现的事实,因为它是一个远程托管脚本(我的脚本)。有些页面是怪癖,有些则不是。

当处于怪癖模式和IE9(没有尝试其他IE版本)时,css似乎没有正确加载或根本没有。事实上,如果我使用IE调试器(F12)调试css,那么我会看到所有的CSS,但是如果它们以这样的两个下划线开头,那么所有的CSS ID都会说UNKNOWN #__

如果我调试元素并检查css,那么没有css规则。 Quirks模式是否在css ID的开头不允许使用下划线?

谢谢!

1 个答案:

答案 0 :(得分:2)

双下划线在CSS2中有效,但quirks mode是CSS1的部分实现。 CSS2 spec说:

  

在CSS2中,标识符(包括选择器中的元素名称,类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_); 它们不能以数字,两个连字符或连字符后跟数字开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项)。例如,标识符“B& W?”可以写成“B \& W \?”或“B \ 26 W \ 3F”。

虽然下划线是CSS1中的无效字符:

  

在CSS1中,选择器(元素名称,类和ID)只能包含字符A-Z,0-9和Unicode字符161-255,以及短划线( - );他们不能以破折号或数字开头;它们还可以包含转义字符和任何Unicode字符作为数字代码(请参阅下一项)。