用插槽';中不允许的元素填充HTML模板插槽是否始终有效;谁的父母?
在MDN上的用插槽';中不允许的元素填充HTML模板插槽是否始终有效;谁的父母?,html,web-component,shadow-dom,custom-element,Html,Web Component,Shadow Dom,Custom Element,在MDN上的和中,他们使用以下模板: <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
和
中,他们使用以下模板:
<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>
- 让我们有一些不同的文本李>
- 在列表中李>
这引起了我的注意,因为通常情况下,
不允许在内。我一直在寻找关于这是否有效或可取的澄清,但没有找到任何解决办法
这样做是否有效和/或明智?是否存在任何不允许的子对象的实例,当它们是通过Shadow DOM间接生成的唯一子对象时,它们也是不允许的?我目前的最佳猜测是,至少这个示例是完全正确的。
内部
的有效性问题严格来说与解析HTML标记有关,而不是文档结构;当你这样做的时候
<p><ul></ul></p>
当您开始列表时,解析器会直接隐式地关闭段落,验证器的抱怨是
实际上没有一个
。因此,唯一的实际问题是这两种结构是否分别良好:
<p><slot></slot></p>
<my-paragraph><ul></ul></my-paragraph>
…他们当然是。但我很想知道这一类别中是否有任何其他元素组合会导致问题,或者我是否错过了解决这种情况的规范语言。规范中称之为“隐含结束标记”: