Ответ 1
Да, вы можете использовать div внутри li, и он будет проверять.
<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
Почему следующий код действителен, когда я использую <div>
внутри a <li>
?
<ul>
<li class="aschild">
<div class="nav">Test</div>
</li>
</ul>
Да, вы можете использовать div внутри li, и он будет проверять.
<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
Внутри <li>
у вас может быть все, что вы могли бы внести внутрь <div>
. В этом смысле они ничем не отличаются.
Он должен быть корректным и в HTML4, XHTML и HTML5.
Это NOT допустимо (так что источники, которые вы нашли о "no divs in lists", могут ссылаться на эту ситуацию):
<ul>
<li></li>
<div></div>
<li></li>
</ul>
Итак: Списки (ul
, ol
) могут иметь только li
в качестве своих детей. Но li
может иметь что-то как своих детей.
Потому что <li>
является блочным элементом, а не встроенным элементом типа <span>
или <a>
.
An <li>
является блочным элементом и будет отлично работать с другими элементами блока внутри.
Да, вы можете. Сколько хотите.