Подтвердить что ты не робот

Как семантически пометить текст стихотворения?

Что использовать для стихотворения?

  • pre
  • blockquote
  • code
  • что-то еще?
4b9b3361

Ответ 1

Не используйте code (если только компьютерный код не является частью стихотворения). Не используйте blockquote (если вы не процитируете стихотворение).

пробелы/разрывы строк: pre или br

Вы можете использовать элемент pre. Спектр дает (информативный) пример:

Ниже показано современное стихотворение, в котором используется элемент pre, чтобы сохранить свое необычное форматирование, которое образует внутреннюю часть самого стихотворения.

<pre>                maxling

it is with a          heart
               heavy

that i admit loss of a feline
        so           loved

a friend lost to the
        unknown
                                (night)

~cdr 11dec07</pre>

Однако я бы использовал только элемент pre, если стихотворение содержит "больше", чем просто значимые разрывы строк (например, в этом примере горизонтальное пробелы имеет смысл).

Если у вас есть простая поэма, я бы пошел с элементом br:

Элементы

br должны использоваться только для разрывов строк, которые фактически являются частью содержимого, как в стихах или адресах.

контейнер: p

Для большинства стихотворений элемент p - это правильный кандидат (или несколько элементов p, конечно). Спецификация имеет (информативный) пример:

<p>There was once an example from Femley,<br>
Whose markup was of dubious quality.<br>
The validator complained,<br>
So the author was pained,<br>
To move the error from the markup to the rhyming.</p>

Также:

Например, адрес также является абзацем, как часть формы, строки или строфы в стихотворении.

Структура: (article, figure)

В зависимости от контекста (содержимого, структуры страницы,...) в большинстве случаев может быть уместен элемент секционирования (article).

Также в зависимости от контекста может быть целесообразным figure element:

Здесь часть стихотворения помечена с помощью figure.

<figure>
 <p>'Twas brillig, and the slithy toves<br>
 Did gyre and gimble in the wabe;<br>
 All mimsy were the borogoves,<br>
 And the mome raths outgrabe.</p>
 <figcaption><cite>Jabberwocky</cite> (first verse). Lewis Carroll, 1832-98</figcaption>
</figure>

Но не используйте их вообще для всех стихов, это действительно зависит от страницы, если их использование правильное.

разное. и пустяки

Ответ 2

Я искал ту же информацию и, аналогично, не нашел каких-либо окончательных "лучших практик", поэтому я решил, что мне просто нужно выяснить свой собственный метод. Тег <p> делает некоторый смысл маркером строфы с линиями, разделенными на <br> s, по спецификации - НО Я обнаружил, что этот стиль разметки не обеспечивает достаточной гибкости.

В частности, мне нужен контроль над отступом. Например, если строка слишком широка для ширины текстового столбца, она не должна просто ломаться: ее продолжение должно быть отступом. Этот висячий отступ может быть достигнут только (насколько я знаю), если каждая строка является его собственным блочным элементом. Поэтому в моем случае я сделал каждую стихотворную линию <p> с классом (скажем, "поэтическая линия" ). Затем я могу использовать следующий CSS:

.poetry-line {
    text-indent: -2em;
    margin-left: 2em;
}

В другом примере стихотворение, которое я публиковал, отложил каждую другую строку, с некоторыми нарушениями на концах строф. Я не мог добиться этого эффекта только с помощью <br> между каждой строкой. Мне пришлось создать новый класс для "indented-line" и применить его вручную.

Я просто делюсь своим опытом. Я предполагаю, что мое предложение состоит в том, что для форматирования вы используете элемент уровня блока для каждой строки. Это может быть <p>, или я думаю, вы могли бы использовать CSS для установки <span> "display" на "block". В любом случае пример spec с <br> между строками не будет работать для большинства стихов, я думаю: каждая строка должна быть ее собственным элементом.