4

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

#__my_css_id{

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

我不能改变这个页面以怪癖模式呈现的事实,因为它是一个远程托管的脚本(我的脚本就是)。有些页面是怪癖,有些则不是。

当处于 quirks 模式和 IE9(未尝试其他 IE 版本)时,css 似乎无法正确加载或根本无法加载。事实上,如果我使用 IE 调试器 (F12) 调试 css,那么我会看到所有的 CSS,但如果所有 css IDS 都以这样的两个下划线开头 #__ 则显示 UNKNOWN

如果我调试元素并检查 css,则没有 css 规则。怪癖模式不允许css ID开头的下划线吗?

谢谢!

4

1 回答 1

2

双下划线在 CSS2 中有效,但quirks 模式是 CSS1 的部分实现。CSS2 规范说:

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

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

在 CSS1 中,选择器(元素名称、类和 ID)只能包含字符 AZ、0-9 和 Unicode 字符 161-255,加上破折号 (-);它们不能以破折号或数字开头;它们还可以包含转义字符和任何 Unicode 字符作为数字代码(参见下一项)。

于 2012-04-14T16:31:40.863 回答