当查看HTML标准的源代码时,有一些我不认识的标签…
例如:
<pre><code class='idl'>[<c- g>Exposed</c->=<c- n>Window</c->]
<c- b>interface</c-> <dfn id='htmlparagraphelement' data-dfn-type='interface'><c- g>HTMLParagraphElement</c-></dfn> : <a id='the-p-element:htmlelement' href='dom.html#htmlelement'><c- n>HTMLElement</c-></a> {
[<a id='the-p-element:htmlconstructor' href='dom.html#htmlconstructor'><c- g>HTMLConstructor</c-></a>] <c- g>constructor</c->();
// <a href='obsolete.html#HTMLParagraphElement-partial'>also has obsolete members</a>
};</code></pre>
从https://html.spec.whatwg.org/multipage/grouping-content.html
我认为这些可能是自定义元素,但它看起来不像它们是通过自定义元素注册表定义的。这是查询customElements
对象的结果。
>>> customElements.get('c')
undefined
>>> customElements.get('c-')
undefined
允许吗?(我猜是这样,因为它来自HTML标准,但它仍然让我感到惊讶)。浏览器如何知道这些元素应该如何显示呢?例如:display: block
vs.display: inline
。
这些是自定义元素(和有效的HTML),由bikeshed的荧光笔生成。
没有必要将这些定义为customelement,因为它们不会带来任何特定的行为,它们所做的只是…节省带宽。
这是提交的摘录:
🚨terrific - hack - alert🚨切换到使用
关于这种自定义元素的默认显示,我将引用Alohci的评论,它确实说得很好:
所有元素都取每个CSS属性的初始值或继承属性的继承值,除非另有指定。所以它们是
display:inline
关于您希望在规范源中只看到最佳实践的期望,最好不要这样假设。阅读这些页面的内容,不要看它们是如何构建的。
大多数HTML编辑器并不关注生成页面的工具,他们用充满模板的伪HTML语言编写规范。
或者像在源文件中那样:<!-- Note: This file is NOT HTML, it's a proprietary language that is then post-processed into HTML. -->