有没有办法使嵌套列表有效?

时间:2011-12-06 19:00:45

标签: html w3c-validation

在尝试使用w3c验证器时,此列表似乎出错:

<ul class="navtest" >
    <ul>
        <li><a href="url.php">Fall Catalog</a></li>
        <li><a href="url.php">Contact us</a></li>
    </ul>
</ul>

我得到的错误是:第94行,第12列:开始标记&#34; LI&#34;省略,但其声明不允许这个

        <ul>

我做错了吗?使用:HTML 4.01 Transitional

4 个答案:

答案 0 :(得分:6)

<ul class="navtest" >
<li>
    <ul>
        <li><a href="url.php">Fall Catalog</a></li>
        <li><a href="url.php">Contact us</a></li>
    </ul>
</li>
</ul>

缺少李的

答案 1 :(得分:2)

根据specUL可能包含的唯一元素是一个或多个LI元素。

请参阅DTD片段:

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

您可以将第二个列表放在列表项中:

<ul class="navtest" >
  <li>
    <ul>
        <li><a href="url.php">Fall Catalog</a></li>
        <li><a href="url.php">Contact us</a></li>
    </ul>
  </li>
</ul>

答案 2 :(得分:1)

这是因为根本不允许您将<ul>放在另一个<ul>内而不将其嵌套在<li>内。

我的问题是:你为什么要使用99的标准?

答案 3 :(得分:1)

以上已回答您的问题。此链接将为您提供更多详细信息,为什么在验证程序中会产生此问题:

https://www.codecademy.com/en/forum_questions/52a217227c82ca0e9b000c21

UL元素只能接受的输入是LI元素。由于您可以在LI元素中插入UL元素,因此必须将结束LI标签放在嵌套的UL / LI集群后 之后。否则,您只是将UL嵌套在UL中,这是不允许的。

TL / DR:将UL / LI嵌套在LI而不是UL中。