是否允许列表内的​​div?

Ken*_*nan 156 html validation xhtml html-lists

我知道LI里面的DIV是不被允许的,但我最近在很多"大"网站上都看过它:Smashing Magazine,Web Designer Wall ......等我尝试验证网站,他们有错误,但没有关于李的div?!

所以我可以在LI里面使用它,我需要它才有效吗?

Dar*_*rov 199

是的,它是有效的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>
Run Code Online (Sandbox Code Playgroud)

  • 如果它的有效性严格在一切都有效 (21认同)
  • 它仍然适用于`<!DOCTYPE html PUBLIC" - // W3C // DTD XHTML 1.0 Transitional // EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> `. (11认同)

Dam*_*mon 31

作为附录:在HTML 5之前,当li中的div有效时,dl,dd或dt中的div不是!

  • 实际上,根据HTML5草案,[`dt`]的内容模型(http://www.w3.org/TR/html5-author/the-dt-element.html#the-dt-element)和[`dd`](http://www.w3.org/TR/html5-author/the-dd-element.html#the-dd-element)元素是"流内容",所以允许`div`在这两者中.你说'dl`不允许这样做是对的. (8认同)

Mes*_*ssa 14

如果你看看xhtml1-strict.dtd,你会看到

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

因此div,p等等可以在内部li(根据w3.org的XHTML 1.0 Strict DTD).