我有一个动态加载的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的开头不允许使用下划线?
谢谢!
答案 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字符作为数字代码(请参阅下一项)。