HTML5:自定义标记与类

HTML5:自定义标记与类,html,css,Html,Css,我刚刚又读了一次关于HTML5自定义标记的文章,并问了一个问题 说: 向HTML添加新元素 您可以使用浏览器技巧将任何新元素添加到HTML中:以下示例 将名为的新元素添加到HTML中,并定义显示> 它的风格: <!DOCTYPE html> <html> <head> <title>Creating an HTML Element</title> <script>document.createElement("my

我刚刚又读了一次关于HTML5自定义标记的文章,并问了一个问题

说:

向HTML添加新元素

您可以使用浏览器技巧将任何新元素添加到HTML中:以下示例 将名为
的新元素添加到HTML中,并定义显示> 它的风格:

<!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>

创建HTML元素
document.createElement(“myHero”)
我的英雄{
显示:块;
背景色:#ddd;
填充:50px;
字体大小:30px;
} 
我的第一个标题
我的第一段

我的第一个英雄
对我来说,这些自定义标记的使用和类一样。 自定义标记的附加值是什么? 是否存在我应该使用自定义标记而不是类的情况? 或者也许使用类总是更好

我只是觉得HTML5中的每一件新事物都有一个很好的理由,在某种程度上使HTML变得更好

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


因此,请教我如何正确使用它。

自定义标记对类没有好处,因此不应使用它们

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

自定义元素是另一回事

HTML5模块标准化了这一理念,允许您使用:

自定义元素由作者定义。一个 的被称为自定义元素 原型

自定义元素类型标识 和是必须与 产品,必须包含U+002D连字符减号, 并且不得包含任何

因此,您可以使用
,但不能使用

有两个动机推动了这一趋势的发展 规格:

  • 为Web开发人员提供了一种构建自己的、功能齐全的DOM元素的方法。虽然很早就有可能创造 在HTML中具有任何标记名的DOM元素,这些元素不是很有用 功能的通过向Web开发人员提供同时通知 解析器,了解如何正确构造元素并对 对于元素的生命周期更改,规范消除了这种需要 对于DOM-as-a-render-view脚手架,它必须存在于当今大多数应用程序中 web框架或库
  • 合理化平台。该规范确保其所有新特性和功能与相关 如今,Web平台的一些功能已经开始发挥作用,因此这些新功能可以 用于解释现有Web平台的功能 特性,例如HTML元素
大部分努力都是为了在两者之间找到正确的平衡 动机,由希望这些动机不会运行而驱动 相互对立,但是相同的互补部分 更大的故事。例如,尽管等级库的范围当前为 它仅限于由作者创建自定义元素,旨在 缩短距离,实现更加雄心勃勃的合理化目标 将所有HTML、SVG和MathML元素合并到一个连贯的系统中


我认为没有任何规范规定我们可以使用或创建自定义HTML标记。我猜,当你不关心语义,或者当它们将被其他有效的HTML标记替换为某些引擎(如Polymer)时,实际上你在HTML中“可以做”的事很多都是非常不受欢迎的,因为它们降低了互操作性,或者,当W3C决定将“myNameChoice”作为官方规范驱动类型时,可能会产生完全出乎意料的后果。老实说,我也不会经常使用W3Schools作为参考;不管你怎么想,它们与W3C没有直接关系。另外,根据我在W3C学校的经验,代码有一半是不正确的。是的,这就是他的意思。顺便说一句,@Adam-大多数人不会因为缺乏联系而憎恨学校。讨厌的是质量。谢谢你的回答。在我看来,当我应该使用自定义元素而不是类时,似乎没有特殊情况(可能以后但现在不是)。对吗?@Nils如果使用自定义元素,则可以定义自定义原型。添加或删除类不会更改元素的原型。因此,自定义元素可能非常有用。但在大多数情况下,你可能会发现类的变通方法。好的,非常感谢你。