Разрешен ли div внутри списка?

Я знаю, что DIV внутри LI не разрешено, но в последнее время я видел его на многих "больших" сайтах, таких как Smashing Magazine, Wall Designer Wall... и т.д.

Я пытался проверить сайты, и у них есть ошибки, но ничего о DIV в LI?!

Так могу ли я использовать его внутри LI, и мне нужно, чтобы он был действительным?

Ответ 1

Да, это действительно согласно xhtml1-strict.dtd. Следующий XHTML передает валидацию:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
</head>
<body>
<ul>
  <li><div>test</div></li>
</ul>
</body>
</html>

Ответ 2

В качестве добавления: перед HTML 5, когда div внутри li действителен, div внутри dl, dd или dt не является!

Ответ 3

Если вы посмотрите xhtml1-strict.dtd, вы увидите

<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block
     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">

Таким образом, div, p и т.д. могут находиться внутри li (согласно XHTML 1.0 Strict DTD от w3.org).

Ответ 4

Допустимо размещать div внутри li, даже если это элемент блока (как еще у нас есть вложенные списки?). Я хотел бы видеть ваш источник, почему он не разрешен!

Ответ 5

Если я правильно помню, div внутри li , используемого для, недействителен.

@Flower @Superstringcheese Div должен семантически определять раздел документа, но он уже практически потерял эту роль. Однако Span должен содержать текст.

Ответ 6

Я вижу, что вы захотите сделать это, если хотите сделать, скажем, всю ячейку элемента меню, которую можно щелкнуть. Я использовал для вставки тега 'li' в теги 'a', чтобы сделать это, но это кажется более правильным.

Ответ 7

Я начинаю в юниверсе webdesign, и я использовал DIV внутри LI, без проблем с семантикой. Я думаю, что DIVs не разрешены в списках, это означает, что вы не можете поместить DIV внутри UL, но у него нет проблем с вставкой его в LI (потому что LI - это только элементы списка haha) Проблема, с которой я столкнулся, заключается в том, что иногда DIV ведет себя несколько иначе, чем обычный, но ничего, что наш хороший CSS не может обрабатывать ха-ха. Во всяком случае, извините за мой плохой английский, и если мой ответ не помог хаха удачи!