Многоуровневые пронумерованные заголовки в HTML5 для описания документа

Поэтому я пишу руководство на html5, и оно будет нуждаться в нумерации.

  • Заголовки должны быть пронумерованы, например, "Раздел 4: Некоторые вещи"
  • Некоторые подзаголовки должны быть пронумерованы, например, "4.01: первый пункт, который вам нужно знать о некоторых вещах"

Просто чтобы быть трудным, в руководстве будут таблицы и изображения, поэтому они должны быть пронумерованы, например:

"Рис. 4.03. Кошка. Большинство изображений в интернете - кошки".

Кроме того, в руководстве много списков процессов. Было бы хорошо, если бы они были пронумерованы под подзаголовками, например

4.05 Простой процесс

4.05.01 Вытащите лист с дерева
4.05.02 Ешь это
4.05.03 Теперь вы гусеница
4.05.04 Превратись в красивую бабочку

Я исследовал различные способы нумерации своих заголовков, подзаголовков, рисунков и списков. Я нахожу ответы, просто не хорошие ответы.

несовершенное решение 1: использовать счетчики CSS

Они не могут быть скопированы в редактирующие программы (слова и т. Д.). Они также, очевидно, не работают с программами чтения с экрана.

несовершенное решение 2: использовать упорядоченные списки

Они не будут "грациозно проваливаться", если все мои заголовки относятся к классу упорядоченных списков "Заголовок", они просто будут выглядеть как простой список без CSS.

Кто-то уже решил эту проблему? Какое решение?

Супер дополнительные благодарности для тех, кто может предложить умный способ автоматического обновления перекрестных ссылок на мои фигуры!

1 ответ

Используйте текст.

<h3>4.01: the first point you need to know about some stuff</h3>

Нумерация - это не просто стилизация (вы можете ссылаться на эти цифры, верно?), Поэтому решение CSS не может быть и речи.

С помощью ol может работать в некоторых случаях, но имеет много недостатков:

  • Вы не хотите использовать ol для всего документа, не так ли?
  • Пользовательские агенты вообще не должны отображать никаких чисел.
  • Многие пользовательские агенты не позволяют искать или копировать номера.
  • Вы не можете получить точную схему нумерации, которую хотите иметь (например, вложенную ol как правило, не отображать разделитель как . но начните снова с первого значения).
Другие вопросы по тегам