参考文献:
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 spec和HTML 4.0.1 spec,由span
传达的唯一含义是display:inline;
-在所有元素之前的is the default behavior被视为元素。HTMLSpanElement
和HTMLUnknownElement
之间应该存在的唯一区别是,前者绑定到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/