Семантичная HTML-вёрстка многострочной цитаты?

Вопрос к приверженцам семантичной HTML-разметки.


Как следует верстать многострочную цитату? Понятно, что тегом blockquote, но тут мне видится затруднение в весьма распространённом случае, когда в последнем абзаце после завершения цитаты идёт ещё какой-либо текст: обычно это указание источника в скобочках, знак сноска или даже банальная точка вне цитаты. Что делать с таким текстом?


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


Совсем худо становится, если расставлять кавычки с помощью CSS; тогда они захватывают и этот текст, что совершенно неправильно. Можно, конечно, исхитриться, обернув этот тег в span, которому задать абсолютное позиционирование и небольшой отступ слева; тогда он выпадет из контекста и пойдёт после завершающей кавычки. Но это имеет всякие нежелательные побочные следствия: появление в определённых ситуациях полосы прокрутки, не соответствующее видимому порядку текста копирование…


В общем, хочется решения и семантически корректного и чтобы выглядело правильно — или хотя бы соображений почему это невозможно.
  • Вопрос задан
  • 5632 просмотра
Пригласить эксперта
Ответы на вопрос 4
@MikhailEdoshin
Семантическая верстка — миф. Простой пример — вы хотите выделить слово. В «семантической» верстке для этого есть «семантический» тэг <em>, который на печати обычно выводится курсивом. Но в вашей фразе аккурат за этим словом идет, например, точка с запятой. По типографским правилам точку с запятой тоже надо выделить курсивом. Варианты: 1) оставить точку с запятой как есть, хоть это и неправильно; или 2) поместить точку с запятой внутрь «семантического» тэга, что странно, или же выделить ее отдельно тем же <em>, что еще более странно; или, наконец 3) забыть про «семантику» и верстать как правильно.

Форма сообщения — его неотъемлемая часть, в общем случае сообщение нельзя разделить на форму и содержание. The medium is the message.
Ответ написан
Delka
@Delka
Готовый код выше опубликовал.

Указание автора — тоже часть цитаты, вы ведь не публикуете цитату без указания авторства. Это cite.
Кавычки расставляем через q.
Ответ написан
Delka
@Delka
окей, а как же тогда называть блок «выдержка из текста + указание источника»?

про cite — помню где-то недавно как раз читал про эти изменения, глупость это я считаю. но html5 — это пока ещё working draft, посмотрим что дальше будет.

код валиден:
* clip2net.com/clip/m20050/1288856845-clip-131kb.png
* clip2net.com/clip/m20050/1288856999-clip-144kb.png

если цитата занимает несколько абзацев заменяем q на div, можно добавить внутрь p по вкусу.
Ответ написан
@tick
>если цитата занимает несколько абзацев заменяем q на p, можно добавить внутрь div по вкусу.

исправлено ради большей семантичности.

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

я бы вообще сделал так
div
blockquote
p текст /p
p текст /p
/blockquote
cite адрес /cite
/div
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы