我可以在列表项中使用div吗?


70

当我在<div>内部使用a时,以下代码为何有效<li>

<ul>
    <li class="aschild">
        <div class="nav">Test</div>
    </li>
</ul>

3
当您在页面中有此代码时,您会遇到什么问题?
carlosfigueira 2011年

7
@Vimal Basdeo:有趣:关于您为什么没有问题的问题。
米奇·

@Vimal Basdeo:也许您应该首先解释为什么您认为这应该是一个问题。
PengOne 2011年

1
完全没有问题。它显示正确,但是在谷歌搜索后发现我不能在列表中使用div,所以我只想确认是否可以在列表中使用div
Manish Basdeo 2011年

3
这个问题是正确的,在这种情况下,对OP进行抨击和贬低是毫无意义的。据我猜测,它是基于一个误解,因此,正确回答将是有益的(现在,我知道@Jawad的链接是完全重复的)。
卡帕

Answers:


71

是的,您可以在li内使用div,它将进行验证。

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

8
您能否详细说明以上那段代码的实际含义?谢谢。
StackExchange什么事啊2013年

3
@yochannah:那只是DTD。由于HTML5不再基于DTD,因此现在还不明确。w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
Jawad

11
HTML5现在基于什么?
Crimbo '17

1
HTML5基于架构。
mystrdat 19/09/26

44

在内部<li>可以有任何自然放入内部的东西<div>。从这个意义上说,它们没有什么不同。

它在HTML4,XHTML和HTML5中也应有效。

这是不是有效的,但(这样你就“在列表中没有申报单”发现有关人士可以参考这种情况):

<ul>
    <li></li>
    <div></div>
    <li></li>
</ul>

因此:列表(ulol)只能将lis作为其子级。但是lis可以像他们的孩子一样拥有任何东西。


为什么无效。或更具体地说,它在哪里说它不是缬草。DTD允许吗?
贾瓦德

6
@Jawad列表只能将lis作为其子级。但是lis可以像他们的孩子一样拥有任何东西。我认为这是OP误认为另一方的地方。
卡帕

16

因为<li>是block元素,所以不是像<span>或的内联元素<a>


8

An<li>是一个块元素,它将与内部的其他块元素完美配合。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.