3

In HTML5, is it OK to use CSS to define your own tags? I know it can generally be looked on as bad practice, but why? And why isn't there an XHTML5 that developers can use?

EDIT===========================================================EDIT Someone asked how one would define their own tags, so here is an example. Say I wanted to move text to the right by 10 pixels. I have several options:

  • Use a div with a class and change the CSS for that class
  • I could add a class or id to a <li> ect
  • Or, I could create the tag moveright, and put in my CSS: moveright {margin-left:10px;}
  • In most cases, I would use the div with the class, but if I have to do it many times, I may want to use the last option, to save myself the typing. So, in short laziness. And, someone who loves HTML5, XML, and CSS3!

    4

    1 回答 1

    7

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

    在实践中,你可以做到;几乎所有的浏览器都允许你这样做,它会工作,但你会违反规范。

    然而,目前正在进行一项规范修订,旨在允许它。该规范尚未最终确定,但已被少数人使用。

    新规范基本上说,如果你想定义自己的标签,没关系;只需添加x-到标签名称的前面。

    因此,您将创建<x-mytag>而不是简单地创建<mytag>.

    我建议密切关注 W3C 规范,看看何时最终确定,以及他们是否会在最后一刻做出任何更改,但现在,我会坚持下去。

    但是,请记住,它的预期用途是创建小部件。换句话说,例如,如果您正在构建自己的组合框或树视图控件。它并不是真的用于在文档流中任意创建新标签——我们已经在 HTML 中有类;如果您对元素所做的只是基本样式,只需将 adiv与类一起使用。

    希望有帮助。

    参考:

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

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

    2. 来自 HTML5Rocks 的全新文章

      这篇文章很好地解释了如何创建符合新规范的自定义元素。如果你想做这种事情,必读。

      但是请注意文章顶部的警告,该警告与我在此答案中的观点相呼应:

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

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

    于 2013-09-04T15:40:58.620 回答