LI元素内的空UL

时间:2010-05-20 12:35:30

标签: html standards html-lists

有人可以解释为什么<ul> elementa不能为空吗?

为什么这个HTML:

<ul>
    <li class="header">
        <a href="#">Work</a>
        <ul/>
    </li>
    <li class="header">
        <a href="#">New</a>
        <ul/>
    </li>
    <li class="header">
        <a href="#">Ungrouped</a>
        <ul/>
    </li>
    <li class="header">
        <a href="#">Offline</a>
        <ul/>
    </li>
</ul>

呈现如下:

  
      
  • 工作      
        
    • 新      
          
      • 未分组      
            
        • 离线
        •   
      •   
    •   
  •   

3 个答案:

答案 0 :(得分:7)

<ul>不是有效的自动结算标记,因此浏览器可能会将其视为未正确关闭。您应始终使用结束</ul>代码。

有关有效自我结束标记的列表,请参阅:

What are all the valid self-closing elements in XHTML (as implemented by the major browsers)?

答案 1 :(得分:3)

单手拍手的声音是什么?

从文档的角度来看,包含零项的列表没有意义,HTML是文档标记语言。

因此规范defines a list要求其中至少有一个列表项。

<!ELEMENT UL - - (LI)+                 -- unordered list -->

至于你的第二个问题,在HTML Compatible XHTML only elements which are defined as being EMPTY中(即HTML中禁止结束标记的那些)可能(并且必须)使用自动关闭标记语法。

答案 2 :(得分:1)

因为浏览器(通常)不支持自动关闭XML样式标记。这将有效:

<ul>
    <li class="header">
        <a href="#">Work</a>
        <ul></ul>
    </li>
    <li class="header">
        <a href="#">New</a>
        <ul></ul>
    </li>
    <li class="header">
        <a href="#">Ungrouped</a>
        <ul></ul>
    </li>
    <li class="header">
        <a href="#">Offline</a>
        <ul></ul>
    </li>
</ul>

有关详细信息,请参阅:Can a span be closed using <span />?