Javascript 浏览器如何处理非标准标记?

Javascript 浏览器如何处理非标准标记?,javascript,html,dom,Javascript,Html,Dom,我正在重构一个遗留代码,并看到一些定制的非标准标记,如下所示: <close></close> <div class="close"></div> 同时,我想知道浏览器是否会以不同的方式处理带有不在此列表中的标记的元素,以及它们是否需要处理更多的资源?我想唯一需要注意的是,未知元素,例如问题中的元素,会暴露在DOM中 否则,浏览器处理它们的方式就没有什么例外了。浏览器中的HTML解析器将它们解析到DOM中,就像解析普通已知元素一样 至于未知元素

我正在重构一个遗留代码,并看到一些定制的非标准标记,如下所示:

<close></close>
<div class="close"></div>

同时,我想知道浏览器是否会以不同的方式处理带有不在此列表中的标记的元素,以及它们是否需要处理更多的资源?

我想唯一需要注意的是,未知元素,例如问题中的
元素,会暴露在DOM中

否则,浏览器处理它们的方式就没有什么例外了。浏览器中的HTML解析器将它们解析到DOM中,就像解析普通已知元素一样


至于未知元素是否需要处理更多资源的问题,考虑到浏览器对这些元素没有任何特殊处理,处理这些元素所需的浏览器资源与处理
div
或任何内容所需的浏览器资源没有什么不同。

非标准元素的处理方式与处理简单的
一样

但它可能有不同的含义。例如,
对某些页面爬虫(如谷歌机器人)具有不同的语义含义

此外,可能有一些JS代码与这些标记一起工作,更改它将破坏JS代码

例如,
$('close')
不能与



Html只不过是XML,所以任何标记都可以用任何类型的属性写入Html。只有当某些工具正在处理这些标记时,它才起作用。

您可以阅读本文了解更多信息:

它们不需要更多的资源来处理它们,因为它像一个
标准标签

使用
非标准标签时请注意:

  • 没有谷歌不会因为在HTML文档中使用非标准HTML标记而惩罚你的网站。但是,当我们谈论谷歌时,都是关于谷歌机器人和搜索引擎结果。当bots索引或读取您的页面时,它会根据在您的站点上爬行的类型检查文档的类型。基本上,通过使用自定义标记(根据doctype,这些标记不是标准的),您会混淆那些机器人程序,这可能会降低您内容的权重,并且可能不会显示在搜索结果中

  • 对你来说更好看。但是,在你为全世界编写这本书之后,你还必须考虑跨浏览器的兼容性。有些浏览器会以不同的方式呈现,特别是IE。因此,最好使用标准Html标记

  • 在jquery中,选择器的概念对于所有元素都是相同的。如果使用自定义标记,它可能再次闯入IE


未知元素采用所有非继承CSS属性的初始值,对于
显示
而言,这些属性是
内联
,因此它们更像
而不是