HTML5:自定义标签。类

时间:2015-03-10 14:43:42

标签: html css html5 css3

我刚刚再次阅读了HTML5 - 自定义标签,并对此提出了疑问。

W3schools说:

  

向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变得更好。

只有使用自定义标签对我来说似乎没有意义,所以我想知道何时使用它们以及为什么。

所以请教我如何正确使用它。

2 个答案:

答案 0 :(得分:1)

自定义标记对类没有任何好处,不应使用它们。

以这种方式创建标记不是HTML5的一部分,它只是使用Javascript进行DOM操作。

自定义元素是另一回事http://www.html5rocks.com/en/tutorials/webcomponents/customelements/

答案 1 :(得分:1)

HTML5的Custom Elements模块标准化了这个想法,允许您使用custom elements

  

自定义元素platform objectinterface由作者定义。 a interface prototype object   custom elementinterface被称为自定义元素   原型

     

自定义元素类型标识custom element   interface并且是一系列必须匹配的字符   NCName制作,必须包含U + 002D HYPHEN-MINUS字符,   并且不得包含任何uppercase ASCII letters

因此,您可以使用<my-hero>,但不能使用<myHero>

  

Motivations

     

有两种动机推动了这种发展   规格:

     
      
  • 为Web开发人员提供一种构建自己的,功能齐全的DOM元素的方法。虽然很有可能创造   带有HTML中任何标记名称的DOM元素,这些元素都不是很多   功能。通过给Web开发人员提供通知的方法   解析器如何正确构造元素并作出反应   生命周期中元素的变化,规范消除了需要   对于DOM-as-a-render-view脚手架,目前大多数都必须存在   网络框架或图书馆。
  •   
  • 合理化平台。该规范确保其所有新功能和能力与相关方式一致   今天,Web平台的各个部分都可以运行,因此这些新功能可以实现   用于解释现有Web平台的功能   功能,例如HTML元素。
  •   
     

大部分努力都是为了在两者之间找到适当的平衡点   希望这些动机不会发生的动机   彼此相反,但相互补充   更大的故事。例如,尽管规范的范围是当前的   仅限于由作者创建自定义元素,它旨在   缩短与更加雄心勃勃的合理化目标的距离   所有HTML,SVG和MathML元素都集成到一个连贯的系统中。