不使用自定义HTML标记的原因是什么?

时间:2014-11-03 10:10:39

标签: html5 custom-tag custom-element

鉴于允许HTML5 specs的当前creating custom HTML elements(只要他们的名字包含破折号),以及Web Components似乎是一个功能就在这里的事实,我想知道为什么创建自己的自定义HTML元素不受欢迎?

请注意,我不是在问是否使用Web组件 - 这仍然是一个移动目标,即使像Polymer这样的大型polyfill也可能尚未准备好进行生产。我问的是创建自己的自定义HTML标记并设置样式,而不需要附加任何JS API。

2 个答案:

答案 0 :(得分:2)

简短回答:我没有听到任何令人信服的理由来避免它们。

然而,这里有一些我曾经听过的反复论据:

  • 不能在旧的IE中工作(只需document.createElement("my-tag");就可以解决这个问题。)
  • 全局命名空间冲突(通常也适用于类名和自定义元素)。
  • CSS选择器性能(doh,这只是你应该担心的最后一件事)。
  • 功能,含义和表现的分离。这实际上是我听说恕我直言有任何有效依据的唯一论据。你当然最好使用语义HTML(搜索引擎和所有这些),但如果你打算使用div,那么我就不明白你为什么不能这样做了。请改用自定义标签。

答案 1 :(得分:1)

反对自定义标签的一个论点是它们与屏幕阅读器的隐含不兼容性。可以使用WAI-ARIA attributes解决此问题。

如果在表格单元格中插入了没有display属性的自定义元素,则存在issue in IE11,它会破坏表格布局。 Check the plunker code。因此,明确声明所有新元素是最安全的,例如:

new-element {
    display: block;
}