6

我已经阅读了这个主题,但我仍然有疑问。有没有办法定义 void 标签?

我试过这个:

<icon class="home"/> (know that slash isn't obligatory)

但是,如果这个标签 FF 关闭它们之后有任何文本内容。

<icon class="home"/> Go home

使

<icon class="home">Go home</icon>

我应该在某个地方定义标签是无效元素吗?还是不能用 HTML5 做?

4

2 回答 2

3

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

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

规格的相关部分:

(浏览器应该如何处理丢失的标签并且他们忽略的相关部分/丢失了,我需要查找这个)

如果元素是一个void element没有结束标记,则生成,因为它不需要一个。

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

<div>
    <div/>test
</div>

这将导致

<div>
    <div>test</div>
</div>

因为/被忽略了。

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

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

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

于 2013-07-17T13:40:43.927 回答
-3

您不应该定义自己的 HTML 标记,句号。

HTML 很有用,因为它是一组公认的标签含义。

(例如,浏览器使链接可点击,因为我们已经(通过 HTML 规范)同意该<a>标签是指向另一个页面的链接。)

可以创建自己的标签,但除了您自己之外,它们对任何人都没有意义。

对于给定的目的,这可能很好,但您不再真正使用 HTML。

于 2013-07-17T13:46:31.113 回答