Вставьте специальный символ, используя: перед псевдо-классом в CSS - PullRequest
29 голосов
/ 10 ноября 2010

Я играл с псевдоклассом :before в css, пытаясь вставить специальный символ, но результат не тот, на который я надеялся.

Использование:

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

Я получаю нужный символ, но с символом & Acirc; перед ним и с использованием:

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

Я получаю полный » на html-странице.

Я могу придумать пару способов решения моей проблемы, но мне было интересно, какой будет правильный синтаксис, если я захочу использовать псевдокласс :before.

Кстати, мой тип документа:

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

Ответы [ 7 ]

47 голосов
/ 10 ноября 2010

попробуйте это

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

\ 00BB - это Unicode-представление этого символа.Должно работать разумно =)

19 голосов
/ 10 ноября 2010

Ответ уже был сказан, но я хочу сослаться на:

Я получаю полный текст &raquo; на html-странице.

Это потому, что свойство CSS content не рассматривается как HTML. Он не добавляется в DOM, поэтому любая разметка для HTML не анализируется. Вы можете вставить символ напрямую: content: "Ԃ"; или использовать кодировку Unicode: content: "\0504";.

14 голосов
/ 10 ноября 2010

Попробуйте указать <meta charset="utf-8">. В идеале вы хотите установить это на сервере.

7 голосов
/ 07 августа 2015

Я знаю, что прошло некоторое время с тех пор, как этот вопрос был задан, но в случае, если кому-то он может понадобиться в настоящее время, я нашел решение для этого.Найдите тот, который вам нужен, и скопируйте для него шестнадцатеричный код.

Затем вставьте его сюда для преобразования.

Вы получите значение, которое выглядит следующим образом: \00E1 (CSS Value)

Вставьте это значение в свой «контент:» и будьте счастливы:)

2 голосов
/ 10 ноября 2010

Ваш браузер не использует правильную кодировку текста, то есть он не использует ту же кодировку текста, что и ваш редактор. Если вы получаете страницу с веб-сервера, лучше всего убедиться, что сервер отправляет правильный заголовок Content-Type. Если у вас нет контроля над заголовками веб-сервера или если вы будете много тестировать с использованием локальных файлов HTML, добавьте соответствующие теги в документ для используемой вами кодировки и версии HTML. Я рекомендую использовать UTF-8. Файл CSS (если он отделен от HTML) должен использовать ту же кодировку.

1 голос
/ 10 ноября 2010

Добавьте это в 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");
?>

И не забудьте сохранить любой файл (css, html, php) с кодировкой UTF-8

0 голосов
/ 10 ноября 2010

Вы должны быть уверены, что все ваши файлы (CSS и HTML) имеют одинаковую кодировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...