使用 HTML 模板插槽中不允许的元素填充该插槽是否始终有效?



在MDN上<template><slot>的最简单示例中,它们使用以下模板:

<template id="my-paragraph">
<p><slot name="my-text">My default text</slot></p>
</template>

然后像这样填充插槽:

<my-paragraph>
<ul slot="my-text">
<li>Let's have some different text!</li>
<li>In a list!</li>
</ul>
</my-paragraph>

这引起了我的注意,因为通常情况下,<ul>不允许进入<p>。我去寻求澄清这是否有效或可取,但没有找到任何解决方案

做这种事情是否有效和/或可取?是否有任何不允许的孩子通过Shadow DOM间接成为独生子女时也不允许的情况?

我目前的最佳猜测是,至少这个例子是完全好的。<p><ul>的有效性问题严格与解析HTML标签有关,而不是文档结构;当你做

<p><ul></ul></p>

直接地,解析器在您启动列表时隐式地关闭了段落,验证器抱怨</p>实际上没有<p>。因此,唯一实际的问题是这两种结构是否分别良好:

<p><slot></slot></p>
<my-paragraph><ul></ul></my-paragraph>

…当然是。但我很想知道这一类别中是否有其他元素组合确实会引起问题,或者我是否错过了解决这种情况的规范语言。

最新更新