кавычки
Базовая линия Широко доступная
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.
Свойство CSS quotes задает, как браузер должен отображать кавычки, которые автоматически добавляются к HTML-элементу <q> или добавляются с помощью значений open-quotes или close-quotes (или пропускаются с помощью no-open-quote и no-close-quote ) значения свойства CSS content.
Попробуйте
Браузеры вставляют кавычки в начале и конце элементов <q> и для значений open-quote и close-quote свойства content. Каждая открывающая или закрывающая кавычка заменяется одной из строк из значения quotes, в зависимости от уровня вложенности, или, если quotes явно задано или каким-либо образом разрешается до auto, используемые кавычки зависят от языка.
Синтаксис
/* Keyword value */ quotes: none; quotes: auto; /* <string> values */ quotes: "«" "»"; /* Set open-quote and close-quote to use French quotation marks */ quotes: "«" "»" "‹" "›"; /* Set two levels of quotation marks */ /* Global values */ quotes: inherit; quotes: initial; quotes: revert; quotes: revert-layer; quotes: unset;
Значения
none-
Значения
open-quoteиclose-quoteсвойстваcontentне производят кавычек, как если бы были заданыno-open-quoteиno-close-quoteсоответственно. auto-
Кавычки, которые типографически соответствуют унаследованному языку (т. е. через атрибут
lang, заданный в родительском или другом предке). [<string><string>]+-
Определяет одну или несколько пар значений кавычек для открывающих и закрывающих кавычек. В каждой паре первая кавычка используется в качестве значения для
open-quote, а вторая — в качествеclose-quote.Первая пара представляет внешний уровень кавычек. Вторая пара, если она есть, представляет первый вложенный уровень. Следующая пара используется для двойной вложенности, и так далее. Если глубина вложенности кавычек больше, чем количество пар, последняя пара в значении
quotesповторяется.Какая пара кавычек используется, зависит от глубины или уровня вложенности кавычек: от количества вхождений
<q>кавычек илиopen-quote(илиno-open-quote) во всем сгенерированном тексте до текущего вхождения, минус количество вхождений закрывающих кавычек, как</q>,close-quote, илиno-close-quote. Если глубина равна 0, используется первая пара, если глубина равна 1, используется вторая пара и так далее.
Примечание: Значение свойства CSS content open-quote увеличивает, а no-close-quote уменьшает уровень кавычек, но не вставляет кавычки.
Формальное определение
| Начальное значение | зависит от пользовательского агента |
|---|---|
| Применяется к | всем элементам |
| Унаследованное | да |
| Вычисленное значение | как указано |
| Тип анимации | дискретный |
Формальный синтаксис
Примеры
Значения кавычек по умолчанию и переопределения
В этом примере сравниваются кавычки по умолчанию, предоставляемые семантическим HTML-элементом <q>, с теми, которые мы определяем с помощью свойства CSS quotes.
Значение quotes по умолчанию auto. В этом примере у первого элемента списка установлено значение quotes: auto, поэтому он получает кавычки по умолчанию для указанного языка; то же самое, как если бы свойство quotes не было задано. Второй элемент списка определяет, какие кавычки использовать для кавычек и вложенных кавычек; эти кавычки будут использоваться для потомков элемента с классом specialQuotes независимо от языка (как любые значения атрибута lang).
HTML
<ul>
<li>
Default quotes:
<p lang="ru">
<q
>Митч Макконнелл - это человек, который знает о России и ее влиянии
меньше, чем даже Дональд Трамп, и <q>я ничего не знаю</q>, сказал
Трамп</q
>, - писал Раджу.
</p>
</li>
<li class="specialQuotes">
Defined by <code>quotes</code> property :
<p lang="ru">
<q
>Митч Макконнелл - это человек, который знает о России и ее влиянии
меньше, чем даже Дональд Трамп, и <q>я ничего не знаю</q>, сказал
Трамп</q
>, - писал Раджу.
</p>
</li>
<ul></ul>
</ul>
CSS
li {
quotes: auto;
}
.specialQuotes {
quotes: "“" "”" "‘" "’";
}
Результат
По умолчанию браузеры предоставляют кавычки, специфичные для языка, когда используется элемент <q>. Если свойство quotes определено, предоставленные значения переопределяют значения по умолчанию браузера. Обратите внимание, что свойство quotes унаследуется. Свойство quotes установлено для элемента <li> с классом specialQuotes, но кавычки применяются к элементам <q>.
Обратите внимание, что каждая открывающая и закрывающая кавычка заменяется одной из строк из значения quotes, в зависимости от уровня вложенности.
Автоматические кавычки
Значение quotes по умолчанию auto. Этот пример работает без явного задания.
HTML
<ul>
<li lang="fr">
<q>Ceci est une citation française.</q>
</li>
<li lang="ru">
<q>Это русская цитата</q>
</li>
<li lang="de">
<q>Dies ist ein deutsches Zitat</q>
</li>
<li lang="en">
<q>This is an English quote.</q>
</li>
</ul>
CSS
q {
quotes: auto;
}
li:not(:last-of-type) {
border-bottom: 1px solid;
}
Результат
Обратите внимание, что атрибут lang был размещен в предке элемента <q>, а не в самом элементе <q>. Если кавычки относятся к другому языку, чем окружающий текст, принято заключать текст в кавычки языка окружающего текста, а не языка самих кавычек.
Сгенерированное содержимое
В этом примере вместо использования элемента <q>, мы добавляем кавычки к псевдоэлементам ::before и ::after перед и после содержимого каждого элемента с определенным именем класса.
HTML
<p>
<span class="quote">I should be using quotes</span>, I thought,
<span class="quote"
>But why use semantic HTML elements when I can add classes to
<span class="quote">ALL THE THINGS!</span>?
</span>
</p>
CSS
.quote {
quotes: '"' '"' "'" "'";
}
.quote::before {
content: open-quote;
}
.quote::after {
content: close-quote;
}
Результат
Текст в качестве кавычек и пустые кавычки
Этот пример демонстрирует использование чего-то другого, кроме кавычек, в качестве значений <string>. Открывающая кавычка указывает говорящего, и, поскольку нет открывающей кавычки, закрывающая кавычка пустая. (Смешивание <string> со словом-ключом, чтобы создать пару, не поддерживается). Мы установили auto для вложенных кавычек. Эти вложенные кавычки будут заключены в те кавычки, которые, как диктует язык, являются обычными для вложенных кавычек.
HTML
<ul>
<li><q data-speaker="karen">Hello</q></li>
<li><q data-speaker="chad">Hi</q></li>
<li><q data-speaker="karen">this conversation is not interesting</q></li>
<li>
<q data-speaker="pat"
>OMG! <q>Hi</q>? Seriously? at least <q>hello</q> is five letters long.</q
>
</li>
</ul>
CSS
[data-speaker="karen" i] {
quotes: "She said: " "";
}
[data-speaker="chad" i] {
quotes: "He said: " "";
}
[data-speaker="pat" i] {
quotes: "They said: " "";
}
[data-speaker] q {
quotes: auto;
}
Результат
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
quotes |
11 | 12 | 1.5 | 4 | 9 | 18 | 4 | 14 | 9 | 1.0 | 4.4 |
auto |
87 | 87 | 70 | 73 | 14.1 | 87 | 79 | 62 | 14.5 | 14.0 | 87 |
none |
11 | 12 | 1.5 | 15 | 9 | 18 | 4 | 14 | 9 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/quotes