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

问题描述 投票:1回答:4

尝试使用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列:省略了“LI”的开始标记,但其声明不允许这样做

        <ul>

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

html w3c-validation
4个回答
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>

失踪的李


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>

1
投票

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

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


1
投票

以上都回答了你的问题。此链接将为您提供验证器中生成此问题的详细信息:

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

UL元素可以采用的唯一输入是LI元素。由于您可以在LI元素中插入UL元素,因此必须将结束LI标记放在嵌套的UL / LI簇之后。否则,您只是在UL中嵌套UL,这是不允许的。

TL / DR:将UL / LI嵌入LI内部,而不是UL。

© www.soinside.com 2019 - 2024. All rights reserved.