2010-11-10 95 views
21

我在css中僞造:before僞類,嘗試插入一個特殊字符,但結果不是我所希望的。在css中使用僞特殊字符之前插入特殊字符

使用:

.read_more:before { 
    content: "»"; 
    margin-right: 6px; 
} 

我得到我想要的性格,但與之前的Â性格和使用:

.read_more:before { 
    content: "»"; 
    margin-right: 6px; 
} 

我得到的html頁面的完整»

我可以想出幾種方法來解決我的問題,但我想知道如果我想使用:before僞類,那麼正確的語法是什麼。

順便說一句,我的文檔類型是:

<!doctype html> 
<html lang="en"> 

回答

13

嘗試指定<meta charset="utf-8">。理想情況下,你想在服務器中設置它。

+0

HTML5是默認UTF-8。 – Tae 2010-11-10 17:06:54

+0

@Tae - http://static.medero.org/kak.html如果在頁面本身沒有指定編碼,服務器會指定編碼...並且因爲他沒有明確指定UTF-8,所以顯然他需要。 – 2010-11-10 17:10:54

+0

謝謝,它確實是meta標記中的一個錯誤,它被設置爲ISO ... – jeroen 2010-11-10 17:14:58

2

您的瀏覽器未使用正確的文本編碼 - 也就是說,它沒有使用與您的編輯器相同的文本編碼。如果您從Web服務器接收頁面,最好的方法是確保服務器發送正確的Content-Type標頭。如果您無法控制Web服務器的標題,或者您將使用本地HTML文件進行大量測試,請將appropriate tags添加到您的文檔中,以瞭解您正在使用的編碼和HTML版本。我建議使用UTF-8。 CSS文件(如果它與HTML分開)應該使用相同的編碼。

35

試試這個

.read_more:before { 
    content: "\00BB"; 
    margin-right: 6px; 
} 

\ 00BB是字符的Unicode表示。應該合理的工作=)

1

添加這在HTML中,<head>部分

<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8" /> 

內,但如果HTML頁面在PHP編碼,我寧願以下幾點:

<?php 
    header("Content-Encoding: utf-8"); 
    header("Content-type: text/html; charset=utf-8"); 
?> 

並且不要忘記用UTF-8編碼保存任何文件(css,html,php)

+0

謝謝,這就是當我看到@ meder的答案時最終做的事情。 – jeroen 2010-11-10 17:15:53

0

您必須確保所有文件(CSS和HTML)具有相同的編碼。

16

答案已經被告知,但我想是指:

我得到完整的&raquo;在HTML頁面上。

這是因爲CSS content屬性不被視爲HTML。它不會附加到DOM,因此任何HTML特定的標記都不會被解析。您可以直接插入字符:content: "Ԃ";或使用Unicode表示法:content: "\0504";

+0

謝謝,這也解釋了爲什麼我沒有在Firebug中看到它。 – jeroen 2010-11-10 17:17:06

+0

很好的解釋,這是我需要的解決方案。乾杯! – 2012-03-28 21:17:32

5

我知道這個問題已經有一段時間了,但如果現在有人可能需要它,我找到了解決方案。

Here's帶有大量字形的圖表。找到你想要的,並複製它的十六進制代碼。

然後粘貼它here進行轉換。

你會得到看起來像這樣的值:\ 00E1(CSS值)

你的這個值粘貼 '內容:' 和快樂:)