HTMLSpanElement 与 HTMLUnknownElement

Bry*_*ace 2 html javascript css browser dom

参考:

这些之间有什么真正的区别吗?

即是否发现(IE8+)这两个元素(spann 和 span)表现不同的场景?

<body>
    <spann></spann> <!-- where this could be any unknown element -->
    <span></span>
</body>
Run Code Online (Sandbox Code Playgroud)

其中前面的 dom 结构是通过以下 JavaScript 创建的:

var body = document.body;
var spann = document.createElement("spann");
var span = document.createElement("span");

body.appendChild(spann);
body.appendChild(span);
Run Code Online (Sandbox Code Playgroud)

abl*_*lly 5

根据HTML 5 规范HTML 4.0.1 规范,唯一传达的含义是span-display:inline;这是考虑元素之前的所有元素的默认行为。

HTMLSpanElementan和 an之间应该存在的唯一区别HTMLUnknownElement是前者与 a 绑定span,而后者则不绑定。

请注意,只有全局属性和事件才会具有来自 的内置接口HTMLUnknownElement,并且span也仅具有为其定义的全局属性/事件(请参阅顶部的规范链接)。


这意味着什么取决于您想要做什么。

如果你想从cstm-elemspan,你可能是安全的,因为规范非常清楚地表明这span只是一个通用的inline(作为div一个通用的block)。

如果您想从span转到cstm-elem,IE8 历来在这方面表现不佳,用前者替换后者是解决此问题的通用解决方案。

不过,好消息是,IE 8 自 2016 年 1 月中旬起就已停产。我们举办了一场盛大的聚会,遗憾的是您不能参加。