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

tjo*_*ons 3 html css html5 css3

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

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

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

    Spu*_*ley 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. 来自HTML5Rocks的全新文章

      本文非常好地解释了如何创建符合新规范的自定义元素.如果你想做这种事情,需要阅读.

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

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

    3. 相关问题:自定义元素是否有效HTML5?