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

Допустимые дочерние элементы ul

Я поддерживаю устаревшее приложение и натолкнулся на следующий код:

<ul>
   <li>...</li>
   <li>...</li>
   <li>...</li>
   <li>...</li>
   <li>...</li>
   <div>
      <li>...</li>
      <li>...</li>
   </div>
</ul>

Я никогда не видел теги div как дочерние элементы элементов ul. HTML отлично отображает браузеры.

Является ли это допустимым HTML? Я чувствую, что это странное использование. Однако, возможно, это вполне нормально и справедливо? Является ли вложенный элемент div внутри элемента ul подходящим использованием? Вы порекомендовали бы за или против этого?

4b9b3361

Ответ 1

Недействительно в любой версии HTML, см., например, HTML 4.01 в ul.

Браузеры разрешают это и анализируют, так что div становится дочерним элементом ul, и они позволяют вам стиль div тоже. Вероятно, это причина использования этой разметки.

Ответ 2

HTML неупорядоченный элемент списка (<ul>) представляет собой неупорядоченный список элементов, а именно набор элементов, которые не имеют числового порядок и порядок в списке бессмысленны. Как правило, элементы неупорядоченного списка отображаются с пулей, которая может быть нескольких форм, таких как точка, круг или квадрат. Стиль пули не определен в описании HTML страницы, но в связанном с ним CSS, используя свойство типа списка.

Разрешенный контент

ноль или более <li> элементов, в конечном итоге смешанных с элементами <ol> и <ul>.

Пример использования

<ul>
  <li>first item</li>
  <li>second item</li>
  <li>third item</li>
</ul>

Вы можете использовать тег <div> внутри тега <li> следующим образом:

<ul>
  <li>first item</li>
  <li>second item</li>
  <li>
      third item
      <div>Third Item Contente</div>
  </li>
</ul>

Ответ 3

Вы можете использовать http://validator.w3.org/, чтобы проверить его.
Ошибки:
1. Тип документа не позволяет использовать элемент "DIV" здесь; Предполагая, что отсутствующий "LI" start-tag
2. Тип документа не позволяет использовать элемент "LI" здесь; отсутствует один из стартовых тегов "UL", "OL"

The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.  

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").