Тег q в HTML: что это и как записать короткую цитату

Тег q (от английского quotation, «цитата») отмечает короткую цитату внутри предложения: чужие слова, взятые из другого источника. Тег парный, закрывающий обязателен. Кавычки вокруг цитаты браузер добавляет сам, вручную их не записывают. Собственный атрибут у тега один, cite: адрес источника, читателю он не виден.

Ниже разобрано, что такое тег q в HTML, какие кавычки он выводит на разных языках, как задать свои и чем q отличается от blockquote.

HTML
<p>Как сказано в учебнике, <q>простая вёрстка надёжнее сложной</q>.</p>

Тег q в HTML: что это и для чего нужен

Тег q нужен для короткой цитаты, которая встроена в предложение и не занимает отдельного абзаца. Внутри него находится только процитированный текст. Браузер сам обводит его кавычками того вида, который подходит языку страницы.

Стандарт запрещает использовать q ради самих кавычек, например для иронии. Слова в кавычках без цитаты, названия и термины записывают иначе: название произведения отмечают тегом cite, а остальное обычными кавычками. Читать: раздел о q в WHATWG.

Кавычки в теге q: почему их не нужно писать вручную

Если записать кавычки самому, получится двойная пара: ««текст»». Стандарт требует, чтобы кавычек не было ни вокруг q, ни внутри него: их выводит браузер.

HTML
<p>Он сказал: <q>лишний div - лишний шум</q>.</p>

У кавычек от q есть и вторая особенность: браузер рисует их как оформление, они не входят в текст страницы. Если выделить абзац и скопировать его (Ctrl + C), в буфер попадёт цитата без кавычек, а кавычки, записанные вручную, скопируются.

Пример: что попадёт в буфер обмена

Результат

Три способа записать одну цитату. Для каждой записи показаны разметка, вид на странице и то, что получится при копировании абзаца. Кавычки, которые выводит сам q, в копию не попадают, а записанные вручную попадают.

Тег q и язык страницы: какие кавычки выберет браузер

Вид кавычек зависит от языка, который браузер определил для окружения q. Язык задаёт атрибут lang у html или у любого окружающего элемента. Если атрибута нет нигде, браузер выводит английские кавычки “текст” даже вокруг русского текста.

Есть и неожиданная особенность: в Chrome атрибут lang на самом теге q вид кавычек не меняет, язык берётся у окружения. Так, <q lang="de"> внутри русского абзаца даёт русские кавычки, а <span lang="de"><q>текст</q></span> даёт немецкие. В других браузерах это может быть иначе, поэтому кадр ниже показывает, как поведёт себя именно ваш.

Язык окруженияВнешняя цитатаВложенная цитата
Русский, украинский«текст»„текст“
Английский, испанский, язык не задан“текст”‘текст’
Немецкий„текст“‚текст‘
Французский«текст»«текст»
Польский„текст”«текст»
Японский「текст」『текст』

Таблица составлена по замеру в Chrome. Надёжнее всего задать язык страницы один раз в html: <html lang="ru">. Если для отдельного фрагмента нужен другой язык, запишите lang на окружающем его элементе.

Пример: какие кавычки выберет ваш браузер

Результат

Кнопки выбирают язык и место, где записан атрибут lang. Ниже видна разметка и цитата из трёх уровней так, как её выводит ваш браузер. В документе кадра язык не задан, поэтому вариант «без lang» показывает кавычки по умолчанию.

Вложенные цитаты в теге q: цитата внутри цитаты

Внутри q можно записать другой q: получится вложенная цитата, то есть цитата внутри цитаты. Для неё браузер сам выбирает второй вид кавычек: в русском языке это внешние «ёлочки» и внутренние „лапки“.

HTML
<p>Он сказал: <q>Учитель повторил: <q>лишний div - лишний шум</q>.</q></p>

Третий уровень вложенности в Chrome повторяет вторую пару: «один „два „три““». Вкладывать больше двух уровней в обычном тексте не нужно, пример с тремя уровнями показан в кадре выше.

Свойство quotes: как задать свои кавычки для тега q

Вид кавычек задаёт CSS-свойство quotes. По умолчанию у него значение auto, то есть кавычки выбираются по языку. Свойству можно передать пары знаков: первая пара для внешней цитаты, вторая для вложенной. Значение none убирает кавычки.

CSS
q {
  quotes: "«" "»" "„" "“";
}

Правило действует на всех q сайта, поэтому его записывают один раз в общий CSS. Если lang задан верно, свойство quotes обычно не нужно. Убрать кавычки можно и правилом q::before, q::after { content: none; }. В курсивном окружении кавычки тоже курсивные: они рисуются как часть текста q.

Пример: набор кавычек для тега q

Результат

Кнопки меняют только правило CSS, цитата записана один раз. В блоке «Правило CSS» видно, что применено, ниже - вид цитаты в цитате и то, что получится при копировании: кавычек в копии нет при любом наборе.

Тег q или blockquote: как выбрать

Тег q строчный: цитата остаётся внутри предложения и переносится вместе с ним, а внутри допустимы только строчные теги. Тег blockquote блочный: цитата выделяется отдельно, отступом, и может состоять из нескольких абзацев. Выбирают по тому, как цитата связана с текстом, а не по числу знаков.

Признакqblockquote
ВидСтрочный, внутри предложенияБлочный, отдельно от текста
Что внутриТолько строчные тегиАбзацы и другие блоки
ОформлениеКавычки выводит браузерОтступ, кавычек нет
Название источникаРядом, вне qВ figcaption, вне blockquote

Про указание источника у blockquote написано на странице тега cite: где указать источник цитаты. Отдельный раздел урока курса: Блочная цитата: blockquote и cite.

Тег q и cite: атрибут и название источника

У q один собственный атрибут cite: адрес источника цитаты, он нужен программам. В проверке абзац с таким атрибутом остался той же высоты, а кавычки и вид не изменились: читатель адрес не видит. Название источника отмечают рядом тегом cite, вне q.

HTML
<p><q cite="https://example.com/rules">Кавычки записывает браузер</q> - написано в справочнике <cite>Правила вёрстки</cite>.</p>

Подробно про атрибут и про элемент cite, включая имя автора, написано на странице тега cite.

Частые ошибки с тегом q

Почти все ошибки с этим тегом связаны с кавычками: их записывают вручную, не задают язык или ждут от них того, чего они не делают.

ОшибкаЧто происходитКак исправить
Кавычки записаны вручную рядом с q: «<q>текст</q>»Получаются двойные кавычки: ««текст»»Убрать ручные кавычки: их выводит браузер
Кавычки записаны внутри тега: <q>«текст»</q>Так же получаются двойные кавычкиЗаписать только текст цитаты
q ради кавычек: <q>так называемый</q> экспертТег обещает «это чужие слова из другого источника», а там иронияОбычные кавычки без тега
Текст русский, а lang нигде не заданБраузер выводит английские кавычки “текст”Записать <html lang="ru">
lang записан только на самом qВ Chrome вид кавычек не меняется: язык берётся у окруженияЗаписать lang на окружающем элементе или задать quotes
Цитата из нескольких абзацев записана в qВнутри q допустим только строчный контент, проверка разметки сообщает об ошибкеТег blockquote
Ждут, что кавычки скопируются вместе с текстомКавычки от q не входят в текст страницы, в копии их нетУчитывать это: в копии будет цитата без кавычек
Атрибут cite у q считают видимымОн читателю не виден, высота абзаца не меняетсяНазвание источника записать видимым текстом рядом в cite
Категория
Поделиться в социальных сетях

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×