2015-06-07 198 views
4

我在semantic UI中發現了此CSS定義。他們廣泛使用這種風格。CSS選擇器中的特殊字符

.ui.\32.buttons > .button, 
.ui.two.buttons > .button { 
    width: 50%; 
} 

我可以看到他們試圖完成什麼。 他們想要讀取CSS定義

.ui.2.buttons > .button, 

它必須是ASCII碼。代碼\ 32將是一個空格。代碼\ 3將是一個「文本的開始」。

你能解釋一下這裏發生了什麼嗎?爲什麼ascii沒有轉換成空間? 爲什麼W3C CSS validator接受這個CSS沒有錯誤?

+0

他們甚至使用'.ui。\ 31 \ 32.buttons> .button'。我真的很好奇,看看這是做什麼。 – connexo

+0

從技術上講,類名不應該以數字開頭,所以'.2'將是一個錯誤。 (實際上,瀏覽器似乎並不介意。)順便說一下,它是一個十六進制數字,而不是十進制數字。 –

回答

2
\32

十六進制 32,其轉換爲十進制數50,這是確實的字符2\31將是1

我發現從W3C規範此引用:

CSS2中,標識符(包括元素名,類和在 選擇器的ID)只能包含字符[A-ZA-Z0-9]和ISO 10646 字符161和更高,加上連字符( - );他們不能以 連字符或數字開頭。它們也可以包含轉義字符和任何ISO 10646字符作爲數字代碼(請參見下一項)。例如, 標識符「B & W?」可以寫成「B \ & W \」或「B \ 26 W \ 3F」。

我發現報價在this arcticle這使它在範圍內,但它歸結爲一個事實,即儘管正常類名稱不能以數字開頭,當數字輸入爲一個轉義字符或(它允許在這種情況下)一個角色的ISO 10646 numeric code

+0

這正是我所假設的,卻無法找到證據!豎起大拇指! – connexo