可以在HTML5中定义自己的标签吗?

时间:2013-09-04 15:34:07

标签: html css html5 css3

在HTML5中,使用CSS定义自己的标签是否可以?我知道它通常可以看作是不好的做法,但为什么呢?为什么没有开发人员可以使用的XHTML5?

EDIT ============================================== =============编辑 有人问如何定义自己的标签,所以这是一个例子。假设我想将文本向右移动10个像素。我有几个选项:

  • 使用带有类的div并更改该类的CSS
  • 我可以将类或ID添加到<li>等等
  • 或者,我可以创建代码moveright,然后输入我的CSS:moveright {margin-left:10px;}
  • 在大多数情况下,我会在课程中使用div,但如果我必须多次使用,我可能想要使用最后一个选项,以节省自己的输入。所以,简而言之就是懒惰。而且,喜欢HTML5,XML和CSS3的人!

    1 个答案:

    答案 0 :(得分:7)

    截至今天,定义您自己的HTML5标签并不是一件好事。 HTML5规范明确禁止它。原因是为了避免与将来添加的官方HTML5标签和人们的自定义标签发生任何潜在的冲突。

    在实践中,你可以做到;几乎每个浏览器都允许你这样做,它会起作用,但你会破坏规范。

    然而,目前正在制定一项旨在允许它的规范修正案。这个规范尚未最终确定,但它已被少数人使用。

    新规范基本上说如果你想定义自己的标签,它就没问题;只需将x-添加到代码名称的前面。

    因此,您需要创建<x-mytag>,而不仅仅是<mytag>

    我建议密切注意W3C的规格,看看它何时完成,以及它们是否会进行最后一分钟的更改,但就目前而言,我会继续使用它。

    但是,请记住,此用途的目的是创建小部件。换句话说,例如,如果您正在构建自己的组合框或树视图控件。它并不是真的只是在文档流中随意创建新标记 - 我们已经有了HTML类;如果您对元素的所有操作都是基本样式,那么只需使用div和类。

    希望有所帮助。

    参考文献:

    1. 当前规范:http://www.w3.org/html/wg/drafts/html/master/dom.html#elements

        

      作者不得使用本规范或其他适用规范不允许的元素,属性或属性值,因为这样做会使语言在将来更难扩展。

    2. Brand new article from HTML5Rocks

      本文非常好地解释了如何创建符合新规范的自定义元素。如果你想做这类事,那就是必读。

      但要注意文章顶部的警告,在这个答案中回应我自己:

        

      抬起头来!本文讨论的API尚未完全标准化且仍在不断变化。在您自己的项目中使用实验API时要小心。

    3. 相关问题:Are custom elements valid HTML5?