2

根据谷歌的风格指南,你应该省略可选标签,如<head>

http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml#Optional_tags

但是,这样做会导致 google pagespeed 告诉我:

文档正文中的 CSS 会对渲染性能产生不利影响。 http://site.com文档正文中有 CSS:正文中的 1 个样式块应移动到文档头部。

对了,那应该怎么办呢?

谢谢。

4

3 回答 3

1

此链接告诉您在哪些条件下可以省略某些标签。

http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#syntax-tag-omission

但要注意,省略标签并不意味着省略元素

在您的情况下, <head>是可选的(甚至是 html)。做就是了

<!DOCTYPE html>     
  <link rel="stylesheet" href="pathTo.css">

你可以看看

有必要写 HEAD、BODY 和 HTML 标签吗?

对于可能想要进行实验的读者,请将以下代码保存到文件中并阅读并使用 firebug 之类的工具进行检查

<!DOCTYPE html>     
 <meta http-equiv="Content-type" content="text/html; charset=utf-8">
 <title>Page Title</title>
 <link rel="stylesheet" href="pathTo.css">
 <script>var a = 0;</script><!-- placed in head -->

 <div>any html text or tags</div>
 <script> var b = 1</script> <!-- placed in body -->
于 2012-05-25T09:23:37.270 回答
1

PageSpeed 在这样的事情上是不可靠的。您应该分析自己的文档结构是否正确。使用 HTML 4.01 和验证器,您将立即看到某个style元素是否出现在 内部body,因为它是一个标记错误(尽管它也可以在那里工作)。

您引用的页面http://site.com没有这个问题(它是 XHTML,没有标记遗漏)。请发布一个真实的 URL,或者至少使用 .example 伪域来表明一个 URL 是虚拟的。

没有看到实际页面,无法分析问题,但总的来说,Google PageSpeed 似乎会发出虚假评论。它似乎工作不一致,但至少在某些情况下,它显然会错误地解析文档。例如,以下代码触发了该消息:

<!doctype html>
<title>foo</title>
<style></style>
<h1>foo</h1>

这里没有歧义:style元素在head元素中(这就是浏览器解析文档的方式,搜索引擎在这里并不重要),即使 PageSpeed 声称并非如此。

我尝试添加省略的标签,但没有任何效果,直到突然,PageSpeed 停止发出消息,现在上面的文档得到了一个干净的报告。我得出结论,PageSpeed 的工作方式是不确定的,这可能是由于其积极的缓存。

于 2012-05-25T11:00:18.470 回答
0

从规范:

如果 body 元素为空,或者 body 元素内的第一件事不是空格字符或注释,则 body 元素的开始标记可以省略,除非 body 元素内的第一件事是脚本或样式元素。

这似乎是您的问题的最可能原因,因为这使得起始正文标记非可选。

(这是假设您按照说明删除了所有可选标签,而不仅仅是选择)

于 2012-05-25T09:14:44.133 回答