你能在HTML5中定义自己的自闭标签吗?

l00*_*00k 6 tags html5

我已经读过这个话题,但我还是有疑问.有没有办法定义void标签?

我试过这个:

<icon class="home"/> (know that slash isn't obligatory)
Run Code Online (Sandbox Code Playgroud)

但是,如果在此标记FF关闭它们之后有任何文本内容.

<icon class="home"/> Go home
Run Code Online (Sandbox Code Playgroud)

使

<icon class="home">Go home</icon>
Run Code Online (Sandbox Code Playgroud)

我应该定义哪个标签是void-element?或者HTML5无法做到这一点?

t.n*_*ese 3

目前这不是答案,因为它没有完全解决问题,但它不适合评论部分。

如果解析为 html5 规范,则in会被浏览器忽略(除了和,因为对于该模块的元素,/它们的规范具有自封闭元素,因此它需要保持有效)/>foreign elementsMathLMSVG

规格的相关部分:

(浏览器应如何处理丢失的标签以及它们忽略的相关部分/丢失了,我需要查找一下)

如果元素是 a,则void element不会生成结束标记,因为它不需要结束标记。

对于其他元素,如果缺少结束标记,则会创建该结束标记。所以如果你写这样的东西:

<div>
    <div/>test
</div>
Run Code Online (Sandbox Code Playgroud)

这将导致

<div>
    <div>test</div>
</div>
Run Code Online (Sandbox Code Playgroud)

因为 被/忽略了。

默认情况下是自定义元素non-void。我知道有一个自定义元素草案,但老实说,我不知道某些浏览器是否已经支持它。但即使是这样,你也会遇到向后兼容的问题。所以我不建议使用它。

即使如此,定义一个不以 an 为前缀的标签名称x-也是一个坏主意,因为如果稍后规范添加了一个带有您选择的名称的元素,并且如果它具有其他含义,您将会遇到问题。

一旦我有时间查找规格,我将提供相应的缺失部件来证明这一点。