我们从设计师处获得了一些可疑的HTML。以下是否有效? (注意UL内部的UL)
<ul>
<li>1</li>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
<li>2</li>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</ul>
答案 0 :(得分:30)
根据HTML 4 specs,代码无效的XHTML 2 specs和HTML 5 specs。
&lt;!ELEMENT
UL
- - (LI
)+
这意味着在<ul>
内只能有多个<li>
元素。
两种类型的列表(
ul|ol
)都由li
元素定义的列表项序列组成。
HTML 5
内容模型:
零个或多个li
和script-supporting元素。
请注意,支持脚本的元素是未呈现的元素,目前仅包含<script>
和<template>
。
答案 1 :(得分:10)
不,它无效。 ul
中唯一允许的元素是li
。
更正样本:
<ul>
<li>
<span>1</span>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</li>
<li>
<span>2</span>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</li>
</ul>
不要让您的设计师为您编写任何HTML代码。聘请一位真正了解如何处理HTML和XHTML的前端开发人员。
答案 2 :(得分:2)
这确实无效;可能意味着:
<ul>
<li>1
<ul>
<!-- ... -->
</ul>
</li>
</ul>
此外,您的设计师在编写HTML时会是什么?
答案 3 :(得分:2)
这是无效的。要创建嵌套列表,您必须将ul
标记放在li
标记内:
<ul>
<li>1</li>
<li>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</li>
<li>2</li>
<li>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</li>
答案 4 :(得分:2)
您应该在W3C网站上搜索HTML标准信息。对于列表元素,您可以在此处找到它:http://www.w3.org/wiki/HTML/Elements/ul。它说 ul应该只包含li 元素。在你的代码中,嵌套的ul应该放在li里面。
答案 5 :(得分:1)
答案 6 :(得分:0)
不仅无效,而且<li>1</li>
不是必需的。为什么不呢?
<ol>
<li> <!--if no content, some browsers render nested li on same line-->
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</li>
<li>
<ul>
<li>1.1</li>
<li>1.2</li>
<li>1.3</li>
</ul>
</li>
</ol>