我们可以使用<ul>
中的任何其他TAG以及<li>
吗?
像
<ul>
Some text here or <p>Some text here<p> etc
<li>item 1</li>
Some text here or <p>Some text here<p> etc
<li>item 1</li>
</ul>
答案 0 :(得分:47)
为了让您的代码有效,您不能在<ul>
以外的<li>
内添加任何标记。
但是,您可以将任何块级元素放在<li>
中,如下所示:
<ul>
<li>
<h2>...</h2>
<p>...</p>
<p>...</p>
</li>
</ul>
答案 1 :(得分:12)
根据W3C Recommendation,列表的基本结构必须是:
<UL>
<LI> ... first list item...
<LI> ... second list item...
...
</UL>
您只能将p
标记放在li
标记内,而不是ul
的直接子标记。 W3C建议书明确指出:
列表由LI元素
定义的列表项序列组成
答案 2 :(得分:5)
虽然你可以在里面有其他标签(并且它可能工作得很好),你不应该因为它不符合w3c。它的语义也很少。
只需创建一个简单的页面并通过验证器(http://validator.w3.org/)运行它,您就会亲眼看到:)
答案 3 :(得分:3)
您可以使用模板标签,这是完全合法的。例如:
<ul>
**<template>**Some text here or <p>Some text here<p> etc**</template>**
<li>item 1</li>
**<template>**Some text here or <p>Some text here<p> etc**</template>**
<li>item 1</li>
</ul>
答案 4 :(得分:2)
不,这将是无效的标记。但是,如果您尝试为某些行创建不同的外观,则可以通过向任何li标记添加特定的类名来实现此目的。见下文:
<ul>
<li class="foobar">Label</li>
<li>Some text here</li>
<li>Some text here</li>
<li class="foobar">Label</li>
<li>Some text here</li>
<li>Some text here</li>
</ul>
答案 5 :(得分:1)
你可以写下这样的标记,但不应该,因为它不合规,你可能会在不同的浏览器中得到奇怪和意想不到的结果。
答案 6 :(得分:0)
没有。如果是列表,则其中包含列表项。我看不到包含非列表项的列表的任何用途;它不是清单......
答案 7 :(得分:0)
如果你这样做来设置list-element的一部分,你可以这样做
<ul>
<li>normal text <span>bold text</span></li>
<li>normal text <span>bold text</span></li>
</ul>
然后使用CSS
ul li {font-size: 12px; font-weight: normal;}
ul li span {font-size: 12px; font-weight: bold;}
希望这会有所帮助
答案 8 :(得分:0)
Knockout.js具体答案,您可以使用以下注释语法。
<ul>
<li class="header">Header item</li>
<!-- ko foreach: myItems -->
<li>Item <span data-bind="text: $data"></span></li>
<!-- /ko -->
</ul>
<script type="text/javascript">
ko.applyBindings({
myItems: [ 'A', 'B', 'C' ]
});
</script>
答案 9 :(得分:0)
HTML5报价
https://html.spec.whatwg.org/multipage/grouping-content.html#the-ul-element说ul
具有:
内容模型:零个或多个li和脚本支持元素。
“内容模型”是指我们可以放入元素中的内容。
因此,据此我们可以理解,仅允许li
之类的script
之类的东西。
将其与类似https://html.spec.whatwg.org/multipage/grouping-content.html#the-div-element的div
这样的元素进行比较:
如果该元素不是dl元素的子元素,则为流内容。
然后,“流内容”的定义是一个包含大多数标签的巨大列表:
a,缩写,地址,...,文本
还请注意text
是如何存在的。然后,我们看到其定义https://html.spec.whatwg.org/multipage/dom.html#text-content
在内容模型的上下文中,文本不表示任何内容,也不表示文本节点。文本有时有时被单独用作内容模型,但也表示内容,并且可以是元素间的空格(如果Text节点为空或仅包含ASCII空格)。
“然后将元素间空格定义为:
元素之间始终允许使用ASCII空格。用户代理将源标记中元素之间的这些字符表示为DOM中的“文本”节点。空文本节点和仅由这些字符序列组成的文本节点被视为元素间空格。
和“ ASCII空格”为https://html.spec.whatwg.org/multipage/dom.html#text-content
ASCII空格为U + 0009 TAB,U + 000A LF,U + 000C FF,U + 000D CR或U + 0020空格。
从所有这些来看,除了前面提到的li
和script
标签之外,我认为ul
中仅允许上述空白。
HTML5验证器同意以下理论:https://validator.w3.org/nu/#textarea
答案 10 :(得分:0)
除了li之外,我们不能在ul内放置任何标签。 但是,我们可以在li内放置其他标签,如下所示::
<ul>
<li>
<div>
<h2>Some Dummmy text</h2>
<p> some content </p>
---
---
</div>
<li/>
<li><li/>
<li><li/>
----
----
</ul>