元素的CSS选择器,其id位于;foo:bar";形式

元素的CSS选择器,其id位于;foo:bar";形式,css,jsf,css-selectors,Css,Jsf,Css Selectors,当使用JSF Web应用程序框架时,框架可以自动生成表单中元素的ID,当组件位于其ID为form1的表单中时,框架会自动为该元素生成form1:foo形式的ID。虽然这可以关闭,但我想知道是否可以为元素定义一个CSS ID选择器,这些元素的ID为foo:bar 提前感谢。根据中的链接,在元素ID中使用冒号是完全错误的 在CSS中,标识符(包括选择器中的元素名称、类和ID)只能包含字符[a-z0-9]和ISO 10646字符U+00A1及更高,加上连字符(-)和下划线(33;);它们不能以数字开头

当使用JSF Web应用程序框架时,框架可以自动生成表单中元素的ID,当组件位于其ID为
form1
的表单中时,框架会自动为该元素生成
form1:foo
形式的ID。虽然这可以关闭,但我想知道是否可以为元素定义一个CSS ID选择器,这些元素的ID为
foo:bar

提前感谢。

根据中的链接,在元素ID中使用冒号是完全错误的

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


JSF框架真的在最终呈现的HTML中输出这些ID吗?

您可以使用
\
来转义冒号

#foo \:条{
颜色:红色;
}
也适用于jQuery选择器

另见:

我做了一些关于如何在CSS中转义任何字符的研究,并在这里写到:请注意,规范中没有明确提到很多特性


我还制作了一个工具,可以自动转义CSS和/或JavaScript中使用的任何字符序列:

非常有趣。JSF总是一团糟。难怪没人喜欢它。尽管JSF2.0与以前的版本相比要好得多,但令人失望的是,JSF1.0/1.1确实是一场灾难。当Ryan Lubke加入开发团队时,JSF1.2是一个巨大的进步。JSF2.0只会越来越好。@BlausC:谢谢你的澄清。现在一切都感觉好多了:)一个问题:当父元素的
id
预加到其子元素时,JSF框架是否确保页面上仍然没有两个元素获得重复的id?否,JSF将抛出
重复的组件id
错误。它还有更多其他原因,请参见。这在某些浏览器(测试过的Chrome、Firefox)中有效,但在IE6或IE7(未测试过8)中无效。实际上,在jQuery/Sizzle(或其他
querySelector
-如选择器引擎)中,您需要再次转义该值。请参阅@Mathias:这只是因为反斜杠本身是JavaScript中的保留字符。您也可以只使用
$('[id=“foo:bar”]')
。@BalusC:没错。您的回答给人的印象是,JavaScript中可以使用完全相同的字符串,我只是想澄清事实并非如此。