3

想想看,XHTML1.1 规范和扩展的 HTML5(假定)......好吧,标记的设计是这样的,除非另有说明,否则“顺序”并不重要。

Body 标签中的所有内容显然都是按浏览器渲染引擎解释的特定方式排序的,但是 HEAD 和 BODY 标签本身在概念上与渲染顺序无关(尽管它们的名称,除了包含在 HEAD 中;如果包含取决于另一个显然必须首先加载),因此遵循与任何标记语言相同的规则。

将 HEAD 标签块扔到 BODY 标签块下方是可行的(至少在基于 WebKit 的浏览器中),但到目前为止我所能做的就是测试标题标签是否正常工作。这不是一个完全有益的测试,但当我在手机上写下这篇文章时,我没有时间进一步思考我的思考过程。

我想知道这样做会如何影响 SEO,更糟糕的是:加载通常在 HEAD 中处理的脚本和 CSS 文件。我知道最近的一种做法是在标记底部或附近发生脚本文件的外部加载,以在页面准备好时延迟加载,这会有什么不同的反应吗

基本上我在问,拥有一个 HEAD 块位于 BODY 块下方的网站的 *影响 *是什么?

<html>
    <body>
        Test
    </body>
    <head>
        <title>Test</title>
        <script src="test.js" type="text/javascript"></script>
        <link rel="stylesheet" type="text/css" href="test.css" />
    </head>
</html>
4

2 回答 2

3

如果有的话,它只会对 SEO 产生负面影响。

首先,您的提案导致 HTML 不正确。HTML4.01 DTD,它严格定义了 HTML 文档的结构, <head>变成了 before <body>

<!ENTITY % html.content "HEAD, BODY">

(如果顺序无关紧要,那就是<!ENTITY % html.content "(HEAD|BODY)+">

其次,我敢打赌大多数蜘蛛会<head>尽快寻找一个元素,如果它在元素之前找不到一个<body>元素,那么它可能最多会打折你的文档,如果不是完全忽略它的话。我怀疑大多数蜘蛛会忽略<head>之后遇到的任何元素<body>

第三,它破坏了用户体验。有时页面可能需要一段时间才能加载,但浏览器会在下载时解析 HTML。一旦它看到<title>它就会将其显示给用户,以便用户知道该页面至少已部分加载(即使尚未呈现)。如果没有此功能,您的用户可能会因为加载速度太慢而沮丧地关闭浏览器选项卡/窗口,因为他们会认为该网站完全没有响应。

于 2013-01-30T06:33:58.737 回答
0

有趣的问题,但我坚信 HTML 结构与人体解剖学(头-身-足)非常相似,如果结构不正确,会发生什么以及它的外观如何?看起来很难看,很难识别特定的人,这里浏览器会根据通用结构(如 head-body-footer)进行操作,因此这些是我们需要遵循的几个预定义结构以获得最佳结果。

关于搜索引擎优化,非现场搜索引擎优化工作在我们如何遵循结构的情况下,当然它会影响谷歌蜘蛛等等。

于 2013-01-30T06:29:21.077 回答