我刚刚再次阅读了HTML5 - 自定义标签,并对此提出了疑问。
向HTML添加新元素
您可以使用浏览器技巧向HTML添加任何新元素:此示例 向HTML添加名为
<myHero>
的新元素,并定义显示&gt; 风格:<!DOCTYPE html> <html> <head> <title>Creating an HTML Element</title> <script>document.createElement("myHero")</script> <style> myHero { display: block; background-color: #ddd; padding: 50px; font-size: 30px; } </style> </head> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> <myHero>My First Hero</myHero> </body> </html>
对我而言,这听起来像使用这些自定义标签与类相同。 自定义标签的附加价值是什么? 是否有任何情况我应该使用自定义标签而不是类? 或者也许使用类总是更好?
我觉得HTML5中的所有新功能都有充分的理由,并且在某种程度上使HTML变得更好。
只有使用自定义标签对我来说似乎没有意义,所以我想知道何时使用它们以及为什么。
所以请教我如何正确使用它。
答案 0 :(得分:1)
自定义标记对类没有任何好处,不应使用它们。
以这种方式创建标记不是HTML5的一部分,它只是使用Javascript进行DOM操作。
自定义元素是另一回事http://www.html5rocks.com/en/tutorials/webcomponents/customelements/
答案 1 :(得分:1)
HTML5的Custom Elements模块标准化了这个想法,允许您使用custom elements:
自定义元素为platform object,interface由作者定义。 a interface prototype object custom element的interface被称为自定义元素 原型强>
自定义元素类型标识custom element interface并且是一系列必须匹配的字符 NCName制作,必须包含U + 002D HYPHEN-MINUS字符, 并且不得包含任何uppercase ASCII letters。
因此,您可以使用<my-hero>
,但不能使用<myHero>
。
有两种动机推动了这种发展 规格:
- 为Web开发人员提供一种构建自己的,功能齐全的DOM元素的方法。虽然很有可能创造 带有HTML中任何标记名称的DOM元素,这些元素都不是很多 功能。通过给Web开发人员提供通知的方法 解析器如何正确构造元素并作出反应 生命周期中元素的变化,规范消除了需要 对于DOM-as-a-render-view脚手架,目前大多数都必须存在 网络框架或图书馆。
- 合理化平台。该规范确保其所有新功能和能力与相关方式一致 今天,Web平台的各个部分都可以运行,因此这些新功能可以实现 用于解释现有Web平台的功能 功能,例如HTML元素。
大部分努力都是为了在两者之间找到适当的平衡点 希望这些动机不会发生的动机 彼此相反,但相互补充 更大的故事。例如,尽管规范的范围是当前的 仅限于由作者创建自定义元素,它旨在 缩短与更加雄心勃勃的合理化目标的距离 所有HTML,SVG和MathML元素都集成到一个连贯的系统中。