如何在HTML中编写符合W3C标准的多级项目符号?

51

是否可以在HTML中编写符合W3C规范的多级项目符号(无序列表)?

嵌套的ul可以使用,但不符合W3C规范。

 <ul>
     <li>myItem 1</li>
     <li>myItem 2</li>
     <ul>
        <li>myItem 2a</li>
     </ul>
     <li>myItem 3</li>
     <li>myItem 4</li>
 </ul>
  • 我的项目1
  • 我的项目2
    • 我的项目2a
  • 我的项目3
  • 我的项目4

在 Visual Studio 中,上述代码会生成警告:验证(XHTML 1.0 Transitional):元素“ul”不能嵌套在元素“ul”中


2
当您尝试验证器时,它抱怨了什么?请发布示例HTML和精确的验证输出。 - Anon
你尝试把<ul>放在<li>里面,看看验证器会显示什么吗? - Felix
你应该能够自然而然地完成。如果不能,那么就是做错了。 - Ben
正如这个线程所证明的那样,本不是这种情况,Ben。这里有一个类似的线程:https://dev59.com/DkvSa4cB1Zd3GeqPh-KA - hotshot309
2个回答

93
  • List item 1
  • List item 2
    • Nested list item 1
    • Nested list item 2
  • List item 3

<ul>
  <li>myItem 1</li>
  <li>myItem 2</li>
  <li style="list-style-type:none">
    <ul>
      <li>myItem 2a</li>
    </ul>
  </li>
  <li>myItem 3</li>
  <li>myItem 4</li>
</ul>


1
如果有人能将我的代码块编辑为代码,我会非常感激(我不知道是 iPhone 编辑的奇怪性质还是我的错误使用导致了问题,尽管我已经多次尝试)。 - David Thomas
1
我没有足够的积分来编辑你的答案 :-( 你的代码创建了一个不需要的项目符号。我该如何摆脱它?谢谢。 - Techboy
1
WTF?最后一个<ul>标签破坏了整个格式,直到我删除所有空格才恢复正常。以前从未见过这种情况。一定是苹果的恶作剧 :) - Pekka
2
这是唯一有效的(x)html解决方案。额外的符号应该通过CSS处理。我建议针对该问题提出单独的问题寻求帮助。 - David Thomas
15
实际上,你只需要将嵌套的UL放在第二个li中,而不是创建一个空的li。这样就不会出现不想要的符号。 - Morgan T.
显示剩余2条评论

20

补充David Thomas的答案,这将删除不需要的项目符号:

<ul>
    <li>myItem 1</li>
    <li>myItem 2        
        <ul>
            <li>myItem 2a</li>
        </ul>
    </li>
    <li>myItem 3</li>
    <li>myItem 4</li>
</ul>


需要在父级ul中至少有一个li元素。 - Destiner
1
事实上,这是正确的答案。关键在于 muItem 2a 是缩进的,因为它嵌套在 myItem 2 中,所以 ul 应该嵌套在其 li 中。 - Manngo
它对我来说完美地运作了,而且比David Thomas的解决方案更简单。感谢Marlon。 - herve-guerin
最好和最简单的答案。 - stevec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接