HTML5:为什么不使用我自己的任意标签名称?

时间:2013-05-31 23:20:00

标签: html5

据我所知,在HTML5中组合标签名称是完全合法的,它们可以像CSS样式和嵌套一样正常工作。

当然,我的任意标签名称对浏览器没有任何影响,浏览器不理解它们,但它使我的代码更具可读性,这使得维护更容易。

那为什么我不应该在我的页面上使用任意标签名称?它会影响SEO吗?会破坏什么吗?

重要编辑:与http://ejohn.org/blog/html5-shiv/

一起使用时,较旧的浏览器不会阻止不受支持的标记

1 个答案:

答案 0 :(得分:10)

更新

原始答案相当陈旧,是在Web组件存在之前创建的(尽管自2011年以来已经讨论过)。自定义元素的规则已经发生了很大变化。 W3C现在有custom elements

的完整标准
  

自定义元素为作者提供了构建自己的全功能DOM元素的方法。虽然作者总是可以在他们的文档中使用非标准元素,但是事后通过脚本或类似方式添加特定于应用程序的行为,这些元素在历史上一直是不符合要求的,并且功能不是很强。通过定义自定义元素,作者可以通知解析器如何正确构造元素以及该类的元素应如何对更改做出反应。

换句话说,W3C现在可以正常使用自定义元素(或问题所谓的任意标记名称)。但是,围绕它们及其使用有很多规则,因此您应该参考链接文档。


原始答案

  1. 较旧的浏览器会阻塞他们无法识别的标签。没有什么可以保证您的自定义标记在任何浏览器中都能正常运行
  2. 您的代码没有应用语义含义,因为此含义仅存在于规范中商定的标记中。这是否会影响SEO是未知的,但解析HTML的任何内容如果遇到无法识别的标签(包括屏幕阅读器或网络抓取器)都可能会遇到麻烦
  3. 如果您的代码嵌套不当,您可能无法从浏览器获得所需的帮助
  4. 同样,一些浏览器可能会搞砸渲染并且彼此不同。例如,<p><ul></ul></p>在Chrome中解析为<p></p><ul></ul>。由于没有商定的内容模型,因此无法保证您的代码将如何处理
  5. W3C不希望你这样做。
      

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

  6. 如果您确实需要为此目的使用自定义标记,可以使用某种模板语言(如XSLT)并创建一个样式表,将其转换为有效的HTML