Это то, над чем я размышлял некоторое время, поскольку я видел, как оба используются на практике.
<ol>
<li>List item 1</li>
<li>List item 2
<ol>
<li>List item 3</li>
</ol>
</li>
<li>List item 4</li>
</ol>
Мне это кажется семантически правильным, поскольку подсписок является подсписком этого элемента списка, однако он не очень чистый (элемент списка Content<list right next to it>).
<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, который побуждает меня верить, что это правильное использование.






Метод 1 правильный.
Метод 2 недействителен HTML. OL не может быть прямым потомком другого элемента OL. В LI разрешен только OL.
Кроме того, принадлежность подсписка к пункту 2 очевидна только человеку-читателю из-за отступа. Сделайте отступ даже с помощью LI, и будет казаться, что внутренний список сам является третьим элементом. Я мог бы ожидать такой рендеринга с двумя числами:
1. List item 1 2. List item 2 3. 1. List item 3 4. List item 4
Метод 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 - хотя в спецификации ясно, что это будет после закрывающим OL.
XHTML 1.1 имеет те же ограничения, но заставляет использовать закрывающий LI, чтобы сделать его явным.
И если вас действительно беспокоит выравнивание текстового содержимого по отношению к содержимому элемента ("<li> Элемент списка 2 <ol> ...") по эстетическим причинам (и это действительно все, что сводится к эстетике) , оберните текстовое содержимое отрезком ("<li> <span> Элемент списка 2 </span> <ol> ..."). Однако в этом нет необходимости.