166

我知道DIV里面LI是不允许的,但我最近在许多“大”网站上看到它,比如Smashing MagazineWeb Designer Wall ...等。

我试图验证网站,它们有错误,但没有任何关于DIVLI

那么我可以在里面使用它LI,而且我需要它是有效的吗?

4

6 回答 6

216

是的,根据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>
于 2009-12-16T14:47:04.503 回答
33

作为附录:在 HTML 5 之前,虽然 li 中的 div 有效,但 dl、dd 或 dt 中的 div 无效!

于 2011-01-15T06:03:55.287 回答
14

如果您查看xhtml1-strict.dtd,您会看到

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

因此divp等可以在里面li(根据 w3.org 的 XHTML 1.0 Strict DTD)。

于 2010-01-12T09:27:01.563 回答
4

如果我没记错的话, li 内的 div曾经是无效的。

@Flower @Superstringcheese Div 应该在语义上定义文档的一部分,但它实际上已经失去了这个角色。然而,Span 应该包含文本。

于 2011-06-10T10:53:43.973 回答
0

我知道如果你想让菜单项的整个框可点击,你会想要这样做。我曾经在“a”标签中插入一个“li”标签来做到这一点,但这似乎更有效。

于 2012-02-16T02:20:56.810 回答
-2

我从网页设计领域开始,我在 LI 中使用了 DIV,语义没有问题。我认为列表中不允许 DIV,这意味着您不能将 DIV 放入 UL 中,但是将其插入 LI 上没有问题(因为 LI 只是列表项哈哈)我遇到的问题是有时 DIV 的行为与平时有些不同,但没有什么是我们优秀的 CSS 无法处理的哈哈。无论如何,对不起我的英语不好,如果我的回答没有帮助哈哈祝你好运!

于 2013-11-18T17:55:24.970 回答