为什么HTML <body>标记中的<style>标记不能在W3C上验证?</style>

时间:2011-01-26 10:32:55

标签: html css w3c-validation

  

可能重复:
  Does <STYLE> have to be in the <HEAD> of an HTML document?

我是开发CMS系统的团队的一员。

我们希望能够以符合W3C标准的方式在HTML页面的<style>中插入<body>标记,因为验证是我们的SEO顾问的要求。

样式标记在所有浏览器的body标签内完美运行,但它拒绝验证。

5 个答案:

答案 0 :(得分:25)

HMTL DTD不允许它,因此它不会验证。无所谓,无论如何所有浏览器都支持它。

答案 1 :(得分:7)

HTML 4规范声明应该在HEAD元素内,而不是BODY元素。另请参阅此相关(重复?)问题

does-style-have-to-be-in-the-head-of-an-html-document

W3C HTML 4.01 ref on <style>

  

HTML允许文档的 HEAD 部分中的任意数量的STYLE元素。

答案 2 :(得分:4)

<style>元素包含适用于整个文档的元数据。这是<head>元素旨在包含的内容。它们生活在头脑中是有道理的,所以这就是规范要求的地方。

答案 3 :(得分:2)

从字面上看,<style>代码中的<body>代码无法验证,因为所有HTML规范都说它不在那里。

关于为什么规范说,我不知道。该要求仍然是最新的HTML规范,最近允许在现实世界中被以前的规范禁止的事情(例如省略type标签上的<style>属性),所以我假设必须有一个理由仍然存在要求。

我想在某些情况下,在正文中包含<style>标记会使页面呈现更难/更慢/更不可靠。

答案 4 :(得分:0)

你在验证什么? HTML,XHTML Transitional,XHTML strict?

可能是因为内联样式在XHTML Strict中无效。您需要使用class="foo",并在CSS文件中定义foo。