15

据我所知,在 HTML5 中组成标签名称是完全合法的,并且它们与 CSS 样式和嵌套等正常工作。

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

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

重要编辑:旧版浏览器在与http://ejohn.org/blog/html5-shiv/一起使用时不会阻塞不受支持的标签

4

1 回答 1

12

更新

最初的答案相当陈旧,并且是在 Web 组件存在之前创建的(尽管自 2011 年以来就已经讨论过它们)。自定义元素的规则发生了很大变化。W3C 现在有一个完整的自定义元素标准

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

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


原始答案

  1. 较旧的浏览器会因无法识别的标签而窒息。没有任何东西可以保证您的自定义标签在任何浏览器中都能按预期工作
  2. 您的标签没有语义含义,因为该含义仅存在于规范中商定的标签中。这是否会影响 SEO 尚不清楚,但任何解析 HTML 的内容如果遇到它无法识别的标签(包括屏幕阅读器或网络抓取工具)都可能会遇到问题
  3. 如果您的标签嵌套不当,您可能无法从浏览器获得所需的帮助
  4. 同样,一些浏览器可能会搞砸渲染并且彼此不同。例如,<p><ul></ul></p>在 Chrome 中被解析为<p></p><ul></ul>. 无法保证您的标签将被如何处理,因为它们没有就内容模型达成一致
  5. W3C不希望您这样做 。

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

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

于 2013-05-31T23:31:01.407 回答