在HTML的id属性中,冒号代表什么?

29

我看到了一个像这样的HTML代码,它用于ID属性:

id="t1:c3"

有人能解释一下这个吗?冒号(:)的目的是什么?

3个回答

34

冒号可以在ID属性内部使用,但并没有特殊含义。虽然有时候会带来问题,如与jQuery或CSS一起使用时,因为冒号在伪选择器中具有特殊含义,所以不建议过多地使用。


那么你的意思是这对CSS也不可取吗? - Ryan
没错,因为在CSS中冒号用于伪选择器,例如#div.button:hover - Chris Fulstow
19
我同意cxfx的看法,但如果非常需要使用冒号,你可以在CSS中使用转义字符来避免,例如 #t1\:c3 { 属性: 值 ;} - Sotiris

6
如果HTML是由Java ServerFaces生成的,通常会产生这样的ID,即如果表单具有ID form1,并且元素具有ID firstName,则如果元素位于顶级,则结果为ID form1:firstName,如果有几个元素在循环中创建,则它们看起来像 form1: 1: firstName 、form1: 2: firstName ,等等。
该框架行为无法更改。

1
对于JSF,请参见此处:https://dev59.com/xWsz5IYBdhLWcg3wZm3Q#7928290 必须使用确切的ID,因此,例如,如果您在代码中放置了id="blah",但该元素位于<h:form id="form">内部,则表单是一个NamingContainer元素,因此实际ID将在原始输出HTML中为form:blah。因此,您将需要在自定义CSS样式中指定form:blah - Andrew
1
请注意,在CSS样式中使用冒号时,对于IE 8 - IE 11,您需要使用\:而不是:,对于IE 6 - IE 7(或任何版本),您需要使用\3A而不是:。请参见此处:https://dev59.com/2nVD5IYBdhLWcg3wAGiD#nYUfoYgBc1ULPQZFcsIZ - Andrew

1
除了上述内容,我发现 Omniture 使用冒号来帮助定义与布局相关的类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接