Допустимые дочерние элементы 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
подходящим использованием? Вы порекомендовали бы за или против этого?
Ответы
Ответ 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>").