HTML规范允许在ID中使用句点(.):<img id="some.id" />
但是,使用CSS ID选择器规则将无法正确匹配:#some.id { color: #f00; }
ID Selectors的CSS规范没有提到这种情况。因此,我假设它使用的是标记名和class selector的组合?例如,CSS规则a.className
将适用于类名称为<a>
的所有 anchor 标记(className
),例如<a class="className"></a>
。
是否可以有一个外部CSS文件规则,该规则通过其中包含句点的ID引用HTML元素?
我不希望这样,因为CSS规范指定CSS“identifier”不包含句点作为有效字符。那么,这是HTML和CSS规范之间的根本不匹配吗?我唯一的选择是使用不同类型的CSS选择吗?有谁能比我更聪明地确认或否认这一点?
(为了简化起见,我将从HTML id属性中删除句点,但这是系统生成的id,因此在这种情况下,我无法更改它。)
最佳答案
在深入研究规范之后,我发现CSS规范确实允许backslash ( \
) escaping像大多数语言一样。
因此,在我的示例中,以下规则将匹配:
#some\.id {
color: #f00;
}