42

:before在 css 中玩弄伪类,试图插入一个特殊字符,但结果不是我所希望的。

使用:

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

我得到了我想要的字符,但在它之前有一个Â字符并使用:

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

»我在 html 页面上得到了完整的信息。

我可以想出几种方法来解决我的问题,但我想知道如果我想使用:before伪类,正确的语法是什么。

顺便说一句,我的文档类型是:

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

6 回答 6

62

尝试这个

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

\00BB 是该字符的 Unicode 表示。它应该合理地工作=)

于 2010-11-10T17:08:37.837 回答
24

答案已经说了,但我想参考一下:

&raquo;我在 html 页面上得到了完整的信息。

那是因为 CSScontent属性不被视为 HTML。它没有附加到 DOM,因此不会解析任何特定于 HTML 的标记。您可以直接插入一个字符:content: "Ԃ";或使用 Unicode 表示法:content: "\0504";.

于 2010-11-10T17:11:29.163 回答
17

尝试指定<meta charset="utf-8">. 理想情况下,您希望在服务器中设置它。

于 2010-11-10T17:02:01.560 回答
10

我知道这个问题被问到已经有一段时间了,但如果现在有人需要它,我找到了解决方案。

这是一个包含很多字形的图表。找到你想要的并复制它的十六进制代码。

然后粘贴到这里进行转换。

您将获得如下所示的值:\00E1(CSS 值)

将此值粘贴到您的“内容:”上并开心:)

于 2015-08-07T17:32:23.993 回答
2

您的浏览器没有使用正确的文本编码——也就是说,它没有使用与您的编辑器相同的文本编码。如果您从 Web 服务器接收页面,最好的方法是确保服务器发送正确的 Content-Type 标头。如果您无法控制 Web 服务器的标头,或者如果您将使用本地 HTML 文件进行大量测试,请为您正在使用的编码和 HTML 版本在文档中添加适当的标签。我建议使用 UTF-8。CSS 文件(如果它与 HTML 分开)应该使用相同的编码。

于 2010-11-10T17:05:21.877 回答
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)

于 2010-11-10T17:09:05.887 回答