Вопрос

Это то, над чем я некоторое время размышлял, поскольку видел, как оба варианта используются на практике.

Способ 1

<ol>
    <li>List item 1</li>
    <li>List item 2
        <ol>
            <li>List item 3</li>
        </ol>
    </li>
    <li>List item 4</li>
</ol>

Мне это кажется семантически правильным, поскольку вложенный список является вложенным списком этого элемента списка, однако он не очень чистый (содержимое элемента списка<list right next to it>).

Способ 2

<ol>
    <li>List item 1</li>
    <li>List item 2</li>
        <ol>
            <li>List item 3</li>
        </ol>
    <li>List item 4</li>
</ol>

Чище, но это не совсем понятно, список является вложенным списком пункта 2 (хотя это понятно с точки зрения человеческого вывода).

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

Итак, итак, что ты думаешь?Источники, где это возможно, предпочтительнее, но личное использование тоже хорошо.Я замечаю, что наследственные оглавления MediaWiki используют Метод 1, который побуждает меня верить, что это правильное использование.

Это было полезно?

Решение

Метод 2 не является допустимым HTML. OL не допускается как прямой потомок другого OL элемент.Только LI допускается в OL.

Кроме того, принадлежность подсписка к пункту 2 очевидна только для обычного читателя из-за отступа.Сделайте отступ ровным с помощью LIs, и это выглядит так, как будто внутренний список сам по себе является третьим элементом.Я мог бы ожидать подобного рендеринга, с двумя числами:

1. List item 1
2. List item 2
3. 1. List item 3
4. List item 4

Метод 1 - это правильный путь.

Другие советы

Метод 1 является правильным.

HTML 4.01 разрешает использовать только элементы LI в OL.Однако закрывающий тег LI является необязательным.Что означает, что это эквивалентно вашему методу 1:

<ol>
   <li>List item 1
   <li>List item 2
      <ol>
        <li>List item 3
      </ol>
   <li>List item 4
</ol>

Для читателя несколько двусмысленно, где находятся закрывающие LI, хотя из спецификации ясно, что это было бы после заключительный ПР.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top