Web 组件、语义标记和文档大纲 因此

问题描述

假设我们正在创建一个名为 foo 的应用程序。我们的应用程序将使用一个 Web 组件 app-foo,它创建一个包含以下标记的影子根:

<app-foo>
    #shadow-root
       <main>
           ...
       </main>
</app-foo>

当然,用户并不关心他们使用的 Web 组件的影子根中的内容,因此他们只需编写他们认为合适的文档,并在需要的地方使用 app-foo。这意味着文档可以包含一个 main 元素,就像 app-foo 一样。

您可能知道 html 规范(请参阅 html.spec.whatwg.org)告诉我们

一个文档不得包含多个未指定 main 属性的 hidden 元素。

“文档”在那里的真正含义是什么?在某些方面,影子根是否算作它们自己的封装文档,其中此类规则适用于每个单独的文档或影子根(因为它们共享 DocumentOrShadowRoot API),或者这些规则是否适用于“扁平化”文档?

TLDR;根据 HTML 规范,在 Web 组件的影子根中使用 main 元素是否无效,因为它所使用的页面也包含 main

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)