我们可以<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>
我们可以<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>
为了使您的代码有效,您不能将任何标签<ul>
放在<li>
.
但是,您可以将任何块级元素放入 中<li>
,如下所示:
<ul>
<li>
<h2>...</h2>
<p>...</p>
<p>...</p>
</li>
</ul>
根据W3C Recommendation,列表的基本结构必须是:
<UL>
<LI> ... first list item...
<LI> ... second list item...
...
</UL>
您只能将p
标签放在标签内li
,而不是作为ul
. W3C 建议书明确指出:
列表由 LI 元素定义的列表项序列组成
虽然您可以在其中包含其他标签(并且它可能工作得很好),但您不应该这样做,因为它不符合 w3c 标准。它也几乎没有语义意义。
只需创建一个简单的页面并通过验证器 ( http://validator.w3.org/ ) 运行它,您就会亲眼看到 :)
您可以使用模板标签,这是完全合法的。例如:
<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>
不,这将是无效标记。但是,如果您想为某些行实现不同的外观,您可以通过将特定的类名添加到任何 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>
您可以编写这样的标记,但不应该这样做,因为它不符合要求,并且您可能会在不同的浏览器中得到奇怪和意外的结果。
不。如果它是列表,则其中包含列表项。我看不到包含非列表项的列表的任何用途;它不是列表...
如果你这样做是为了设置列表元素的一部分,你可以这样做
<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;}
希望这可以帮助
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>
HTML5 报价
https://html.spec.whatwg.org/multipage/grouping-content.html#the-ul-element说ul
有:
内容模型:零个或多个 li 和脚本支持元素。
“内容模型”是指我们可以放入元素中的内容。
因此,由此我们了解到,只允许li
类似的事情script
。
div
将其与https://html.spec.whatwg.org/multipage/grouping-content.html#the-div-element所说的元素进行比较:
如果元素不是 dl 元素的子元素:流内容。
“流内容”的定义是一个包含大多数标签的巨大列表:
a, 缩写, 地址, ..., 文本
还要注意那里是如何text
存在的。然后我们看到它的定义https://html.spec.whatwg.org/multipage/dom.html#text-content
文本,在内容模型的上下文中,要么什么都没有,要么意味着文本节点。文本有时单独用作内容模型,但也用作内容的短语,并且可以是元素间空白(如果文本节点为空或仅包含 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 SPACE。
从所有这些来看,除了前面提到的li
和script
标签之外,我相信在ul
.
HTML5 验证器同意该理论:https ://validator.w3.org/nu/#textarea
除了 li 之外,我们不能在 ul 中放置任何标签。但是,我们可以在 li 中放置其他标签,像这样::
<ul>
<li>
<div>
<h2>Some Dummmy text</h2>
<p> some content </p>
---
---
</div>
<li/>
<li><li/>
<li><li/>
----
----
</ul>