2013-07-16 36 views
4

我如何选择div?带有双点的CSS选择器?

<div id="languageForm:j_id427:0:j_id432">Test</div> 

此代码不起作用

#languageForm:j_id427:0:j_id432 { color:#00aa00; } 

。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

回答

7

:是在CSS特殊字符(:hover

使用\00003A来逃避它:

#languageForm\00003Aj_id427\00003A0\00003Aj_id432 { color:#00aa00; } 

jsfiddle

注:请不要使用\:因为它doesn't work in IE7

为什么很多0?因为浏览器将尝试读取至多6个字符来解析CSS文件中的unicode常量。如果没有零,它将会读取\3Aj并停止并显示错误。

2

您选择包含:所以你需要使用反斜杠\逃避他们,用这个

#languageForm\:j_id427\:0\:j_id432 { 
    color:#00aa00; 
} 

Demo

注:可能是旧的浏览器将在逃避失败,在这种情况下,你 可以使用冒号相当的\ 3a。

#languageForm\3a j_id427\3a 0\3a j_id432 { 
    color:#00aa00; 
} 

Demo(注意\3a后的空格)

(考虑把aarons answer如果您正在使用(\3A)解决方案会)

+0

注意:这在IE7中不起作用。 –

+0

@AaronDigulla我刚刚用'\ 3a'创建了一个小提琴:) –

+0

我不喜欢Unicode转义之后的空格;它几乎任何CSS编辑器的语法高亮都会混淆。 –