2012-05-01 31 views
238

我遇到問題。我找到了向下箭頭的HTML代碼,↓(↓)在CSS內容值中放置Unicode字符

很酷。現在我需要用它在CSS像這樣:

nav a:hover {content:"&darr";} 

這顯然不會,因爲↓工作是一個HTML標誌。似乎沒有關於這些在css中使用的「逃脫unicode」符號的信息。還有其他符號,例如\2020,我發現但沒有箭頭。什麼是箭頭代碼?

+10

您需要':before'或':after'才能使內容正常工作 – Musa

+2

簡單的Google搜索顯示http://www.blooberry.com/indexdot/html/tagpages/entities/arrow.htm列出了Unicode代碼點許多箭頭。 – Phrogz

+1

@Progrog不幸的是,該網站在unicode中不包含「/」,所以通常我不知道爲了使其在css中工作,我必須將「/」添加到代碼中。我現在知道我必須添加「/」才能工作。 – davecave

回答

370

爲什麼不直接保存/提供CSS文件爲UTF-8?

nav a:hover:after { 
    content: "↓"; 
} 

如果這還不夠好,你要保持它的所有ASCII碼:

nav a:hover:after { 
    content: "\2193"; 
} 

一個字符串內使用Unicode字符的一般格式是\000000\FFFFFF - 反斜線後面跟着六個十六進制數字。如果Unicode字符是字符串中的最後一個字符,或者在Unicode字符後面添加空格,則可以省略前導0數字。詳細信息請參見下面的規格。


Relevant part of the CSS2 spec

第三,反斜槓允許作者引用他們不能輕易地把一個文檔中的字符。在這種情況下,反斜槓後面最多有六個十六進制數字(0..9A..F),代表ISO 10646([ISO10646])字符,該數字不能爲零。 (在CSS 2.1中未定義,如果樣式表確實包含Unicode代碼點爲零的字符,會發生什麼情況。)如果[0-9a-fA-F]範圍內的字符跟隨十六進制數字,則數字的結尾需要明確。有兩種方法可以做到這一點:

  1. 用空格(或其它空白字符): 「\ 26 B」( 「& B」)。在這種情況下,用戶代理應將「CR/LF」對(U + 000D/U + 000A)視爲單個空白字符。
  2. 通過提供準確6個十六進制數字: 「\ 000026B」( 「& B」)

實際上,這兩種方法可以結合。十六進制轉義後只有一個空白字符被忽略。請注意,這意味着轉義序列後面的「真實」空間必須加倍。

如果數字超出Unicode允許的範圍(例如,「\ 110000」高於當前Unicode允許的最大10FFFF),則UA可以用「替換字符」(U + FFFD)替換轉義。如果要顯示字符,UA應該顯示一個可見的符號,例如「缺少字符」字形(參見第5點)。

  • 注:反斜槓總是被認爲是一種identifier或字符串(即,「\ 7B」的一部分是不標點符號,即使「{」是和「\ 32」被允許在開始即使「2」不是)。
    標識符「te \ st」與「test」的標識符完全相同。

綜合列表:Unicode Character 'DOWNWARDS ARROW' (U+2193)

+19

下面是另一個箭頭列表:http://unicode-table.com/en/sets/arrows-symbols/使用「U +」代碼,但用「\」替換「U +」。例如「U + 25C0」變成內容:「\ 25C0」;' – Luke

+5

這個[實體轉換計算器](http://www.evotech.net/articles/testjsentities.html)可能會很方便。 – stove

+5

一個細節,在轉義字符後面添加空格,需要添加兩個空格'\2193␣␣'。這是因爲第一個空間被CSS解析器所吃掉。如果Unicode數字是5個或更少的字符,則是這種情況。 –