鉴于当前允许创建自定义 HTML 元素的HTML5 规范(只要它们的名称包含破折号),以及 Web 组件似乎是一个可以保留的功能这一事实,我想知道为什么要创建自己的自定义 HTML元素皱眉?
请注意,我不是在问是否使用 Web 组件——它仍然是一个移动的目标,即使使用像 Polymer 这样的优秀 polyfill 可能还没有准备好投入生产。我问的是如何创建您自己的自定义 HTML 标记并对其进行样式设置,而无需将任何 JS API 附加到它们。
鉴于当前允许创建自定义 HTML 元素的HTML5 规范(只要它们的名称包含破折号),以及 Web 组件似乎是一个可以保留的功能这一事实,我想知道为什么要创建自己的自定义 HTML元素皱眉?
请注意,我不是在问是否使用 Web 组件——它仍然是一个移动的目标,即使使用像 Polymer 这样的优秀 polyfill 可能还没有准备好投入生产。我问的是如何创建您自己的自定义 HTML 标记并对其进行样式设置,而无需将任何 JS API 附加到它们。
简短的回答:我还没有听到任何非常有说服力的理由来避免它们。
但是,以下是我听到的一些反复出现的论点:
document.createElement("my-tag");
应该解决这个问题)。div
for 它,我不明白为什么您不能使用自定义标签。反对自定义标签的理由之一是它们与屏幕阅读器的隐含不兼容。这个问题可以通过WAI-ARIA 属性来解决。
IE11 中存在一个问题,如果在表格单元格中插入没有显示属性的自定义元素,则会破坏表格布局。检查 plunker 代码。因此,显式声明所有新元素是最安全的,例如:
new-element {
display: block;
}