根据谷歌的风格指南,你应该省略可选标签,如<head>
http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml#Optional_tags
但是,这样做会导致 google pagespeed 告诉我:
文档正文中的 CSS 会对渲染性能产生不利影响。 http://site.com文档正文中有 CSS:正文中的 1 个样式块应移动到文档头部。
对了,那应该怎么办呢?
谢谢。
根据谷歌的风格指南,你应该省略可选标签,如<head>
http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml#Optional_tags
但是,这样做会导致 google pagespeed 告诉我:
文档正文中的 CSS 会对渲染性能产生不利影响。 http://site.com文档正文中有 CSS:正文中的 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">
你可以看看
对于可能想要进行实验的读者,请将以下代码保存到文件中并阅读并使用 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 -->
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 的工作方式是不确定的,这可能是由于其积极的缓存。
从规范:
如果 body 元素为空,或者 body 元素内的第一件事不是空格字符或注释,则 body 元素的开始标记可以省略,除非 body 元素内的第一件事是脚本或样式元素。
这似乎是您的问题的最可能原因,因为这使得起始正文标记非可选。
(这是假设您按照说明删除了所有可选标签,而不仅仅是选择)