Ваши открытые кавычки не заканчиваются, поэтому браузер делает «умное» предположение, что вы собираетесь вложить ваши кавычки, в результате чего двойные внешние кавычки для первого элемента и одинарные внутренние кавычки для второго. Вот как работает пунктуация в кавычках. См. Википедия и ссылки на вложенные цитаты в ней.
Примечательно, что границы элементов игнорируются, поэтому не имеет значения, даже если ваш второй элемент вложен глубже или оба элемента вложены в свои собственные родительские элементы, он все равно будет работать так же, что делает его особенно полезным в абзацы, которые могут содержать различные виды и комбинации фраз (a
, br
, code
, em
, span
, strong
и т. д., а также сам q
). Как вложенные кавычки зависят исключительно от количества open-quote
с и close-quote
с, которые были сгенерированы в любой момент времени, и алгоритм подробно описан в разделе 12.3.2 спецификации CSS2 , заканчивая следующей заметкой:
Примечание. Глубина цитирования не зависит от вложенности исходного документа или структуры форматирования.
Для этого есть два так называемых «решения» этой проблемы, каждый из которых включает добавление псевдоэлемента ::after
для выравнивания первого набора открытых кавычек.
Вставляя закрывающие кавычки, используя ::after
, кавычка для первого элемента заканчивается до того, как встречается второй элемент, поэтому вложение кавычек отсутствует.
Если вы на самом деле не хотите отображать закрывающие кавычки, вы все равно можете запретить браузеру генерировать одинарные кавычки для второго элемента, используя no-close-quote
.