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