参考文献:


https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement
https://developer.mozilla.org/en-US/docs/Web/API/HTMLUnknownElement


两者之间有什么真正的区别吗?

即,是否发现了任何方案(IE8 +),这两个元素(斯潘和斯潘)的行为不同?

<body>
    <spann></spann> <!-- where this could be any unknown element -->
    <span></span>
</body>


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

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

body.appendChild(spann);
body.appendChild(span);

最佳答案

根据HTML 5 specHTML 4.0.1 spec,由span传达的唯一含义是display:inline;-在所有元素之前的is the default behavior被视为元素。

HTMLSpanElementHTMLUnknownElement之间应该存在的唯一区别是,前者绑定到span,后者不绑定。

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



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

如果您想从cstm-elem转到span,则可能会很安全,因为规范非常明确地指出span只是通用的inline(其中div是通用的block) 。

如果您想从span转到cstm-elem,则IE8一直以来就很糟糕,而replacing the latter with the former是针对此问题的一般解决方案。

不过,好消息是,IE 8自2016年1月中旬以来一直处于停产状态。我们举办了一场派对,可惜您不能参加。

关于javascript - HTMLSpanElement与HTMLUnknownElement,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36268712/

10-11 05:53