为什么可以’;t<;风格>;HTML中的标记<;车身>;W3C上的标签验证?

为什么可以’;t<;风格>;HTML中的标记<;车身>;W3C上的标签验证?,html,css,w3c-validation,Html,Css,W3c Validation,可能重复: 我是开发CMS系统团队的一员 我们希望能够以符合W3C标准的方式在HTML页面的中插入标记,因为验证是我们SEO顾问的要求 样式标记在所有浏览器的body标记中都能很好地工作,但它拒绝验证。HMTL DTD不允许它,因此它不能验证。没关系,所有浏览器都支持它。HTML4规范规定应该在HEAD元素中,而不是BODY元素中。另请参见此相关(重复?)问题 HTML允许在文档的HEAD部分中包含任意数量的样式元素 你反对什么?HTML、XHTML过渡、XHTML严格 可能是因为内联样式

可能重复:

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

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


样式标记在所有浏览器的body标记中都能很好地工作,但它拒绝验证。

HMTL DTD不允许它,因此它不能验证。没关系,所有浏览器都支持它。

HTML4规范规定应该在HEAD元素中,而不是BODY元素中。另请参见此相关(重复?)问题

HTML允许在文档的HEAD部分中包含任意数量的样式元素


你反对什么?HTML、XHTML过渡、XHTML严格

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

实际上,
标记中的
标记不会生效,因为所有HTML规范都说它不在那里

至于为什么说明书上会这么说,我不知道。该需求仍然在最新的HTML规范中,并且最近允许在现实世界中使用以前的规范所禁止的东西(例如,省略
标记上的
type
属性),因此我假设该需求仍然存在一定的原因


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

元素包含适用于整个文档的元数据。这就是
元素的设计目的。对他们来说,活在头脑中是有意义的,所以这就是规范要求他们的地方。

“因为验证是我们SEO顾问的要求”-我想我已经发现了你的问题,就在那句话的最后两个词中。我想他指的是
标签中的
标签,不是
style
属性。而且无论样式元素放在主体中的什么位置,它们的行为都是一致的?根据我从ie4(甚至Netscape 4)到现代浏览器的经验,样式标记可以放在主体中的任何位置。但我不知道这是否适用于严格的docpes。该规范建议不属于正文的样式,还要求一致的浏览器支持它。对我来说,这听起来像是在规范中,并且得到了支持,而不管对作者的愚蠢的伪禁令。所以,是的,验证器说什么“无关紧要”@幽灵肯尼,这是一个伟大的讨论。应包含在/A答案中。引用“我同意让样式在主体中有效的HTML 5。它不需要HTML 5一致性检查程序来让开发人员意识到这通常是不好的做法。每个web开发人员都知道样式通常是头部的一部分。但是有时它无法避免。它应该是有效的。”@WraithKenny和下一个评论,“文档正文中的另一个用例是用户/CMS生成的内容。例如,客户端希望控制容器的背景图像……他们将图像上载到CMS,服务器自动生成背景图像,并动态输出标签中的内容,以支持适合特定屏幕大小的多个背景图像。“我突然想到,基于选择器的样式可能对身体中的东西没有定义。样式是否仍然应用于整个文档,还是仅从标记向前?我的直觉是,大多数浏览器仍然会将选择器应用于整个文档,这可能违反直觉。在这种情况下,它还会导致一个问题,即部分加载的页面在所有样式标记加载完毕之前会错误地显示样式。