一个页面中有多个html、head和body元素是否是可以的?

7

我有多个页面被合并到一个页面中。其中一些单独的页面有自己的html、head和body元素。这对页面的性能有害吗?在FireBug中,DOM似乎是正确的(只有每个元素的单个副本)。


你为什么要制作这样的页面?难道你不能改变你的代码并编写有效的HTML/XHTML吗? - Philip Daubmeier
1
我猜你问题的最简单答案是……不,它不可以。 - James Westgate
3个回答

11

首先:不要这样做。

浏览器在解析HTML方面非常宽容,因此Firefox在您的情况下具有有效的DOM。拥有多个html、body和head标签不会影响页面解析的性能。但请注意,浏览器可能会以quirks模式运行,并影响您的任何元素的渲染。

无论如何,这完全违反了任何标准,您应该避免制作这样的页面。一些浏览器可能会拒绝显示您网站的任何内容。这可能是您没有考虑到的某些浏览器,例如纯文本浏览器或旧手机上的轻量级浏览器。


1

DOM 可能是正确的,但由于这种情况是一个“未定义状态”,因此取决于 Web 浏览器实现来决定如何处理。

一种选择是停止消化 HTML、HEAD 和 BODY 元素的下一个出现。另一种(在我看来不太好)是只考虑最后一个。但这真的取决于特定的浏览器实现(或 Web 组件)以及它的构建方式。


0

拥有多个htmlheadbody对您的页面符合标准(无论是HTML还是XML)都有害,因此应该为此避免。

现在谈到性能,这很可能会使您的浏览器使用“quirks”模式,并在特定情况下可能导致某些元素呈现不当(或者一切都可以正常,但我想人们不应总是依赖运气)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接