Spec-Zone.ru › CSS

кавычки

Базовая линия Широко доступная

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 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 уменьшает уровень кавычек, но не вставляет кавычки.

Формальное определение

Начальное значение зависит от пользовательского агента
Применяется к всем элементам
Унаследованное да
Вычисленное значение как указано
Тип анимации дискретный

Формальный синтаксис

quotes = 
auto |
none |
match-parent |
[ <string> <string> ]+

Примеры

Значения кавычек по умолчанию и переопределения

В этом примере сравниваются кавычки по умолчанию, предоставляемые семантическим 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;
}

Результат

Спецификации

Спецификация
CSS Модуль генерируемого содержимого уровень 3
# кавычки

Совместимость браузеров

Рабочий стол Мобильные устройства
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

См. также

  • Модуль CSS сгенерированного содержимого
  • contain
  • content

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API