it-roy-ru.com

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

Я знаю, что DIV внутри LI не разрешен, но в последнее время я видел это на многих "больших" сайтах, таких как: Smashing Magazine, Web Designer Wall ... и т.д. Я пытаюсь проверить сайты, и у них есть ошибки, но ничего о div's в LI ?!

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

153
Kenan

Да, это действительно в соответствии с 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>
197
Darin Dimitrov

Как дополнение: до HTML 5, хотя div внутри li действителен, div внутри dl, dd или dt - нет!

29
Damon

Если вы посмотрите на 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).

14
Messa

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

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

3
mystrdat

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

0
user1212854