【问题标题】:Is it ok to define your own tags in HTML5? [duplicate]可以在 HTML5 中定义自己的标签吗? [复制]
【发布时间】:2013-09-05 16:58:28
【问题描述】:

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

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

  • 使用带有类的 div 并更改该类的 CSS
  • 我可以将类或 ID 添加到 <li>
  • 或者,我可以创建标签moveright,并输入我的CSS:moveright {margin-left:10px;}
  • 在大多数情况下,我会在课堂上使用div,但如果我必须多次这样做,我可能想使用最后一个选项,以节省自己的打字时间。所以,总之懒惰。而且,喜欢 HTML5、XML 和 CSS3 的人!

    【问题讨论】:

    • 如何用 CSS 定义 HTML 标签?
    • 为什么?因为搜索引擎不知道如何索引它。屏幕阅读器将无法正确阅读。
    • 关于自定义标签,这是多个问题的重复。关于 XHTML5,这是一个不同的问题,简短的回答是存在 XHTML5,但有意义的使用需要使用 XML 文档类型来提供它,然后旧版本的 IE 就会扼杀它。

    标签: html css


    【解决方案1】:

    从今天开始,定义自己的 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?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多