2013-07-16 80 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編輯器的語法高亮都會混淆。 –