【问题标题】:Why can’t <style> tags within the HTML <body> tag validate on W3C? [duplicate]为什么 HTML <body> 标签中的 <style> 标签不能在 W3C 上验证? [复制]
【发布时间】:2011-06-15 18:25:50
【问题描述】:

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

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

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

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

【问题讨论】:

  • “因为验证是我们的 SEO 顾问的要求”——我想我已经发现了你的问题,就在这句话的最后两个词中。

标签: html css w3c-validation


【解决方案1】:

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

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

W3C HTML 4.01 ref on &lt;style&gt;

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

【讨论】:

    【解决方案2】:

    &lt;style&gt; 元素包含适用于整个文档的元数据。这就是 &lt;head&gt; 元素旨在包含的内容。让它们活在头脑中才有意义,所以规范要求它们存在。

    【讨论】:

      【解决方案3】:

      从字面上看,&lt;body&gt; 标记中的&lt;style&gt; 标记不会生效,因为所有 HTML 规范都说它不存在。

      至于为什么规范这么说,我不知道。该要求仍然在最新的 HTML 规范中,最近在现实世界中工作的东西被以前的规范禁止(例如省略 &lt;style&gt; 标签上的 type 属性)已被允许,所以我假设那里一定是需求仍然存在的原因。

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

      【讨论】:

      • 我突然想到,基于选择器的样式可能对正文中的内容没有定义。样式是否仍适用于整个文档,还是仅适用于
      【解决方案4】:

      您要针对什么进行验证? HTML、XHTML 过渡、XHTML 严格?

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

      【讨论】:

      • 我认为他的意思是&lt;style&gt; 标签内的&lt;body&gt; 标签,而不是style 属性。
      【解决方案5】:

      HMTL DTD 不允许这样做,因此无法验证。没关系,反正所有浏览器都支持。

      【讨论】:

      • 无论样式元素放在正文中的什么位置,它们的行为都一致?
      • 根据我从 ie4(甚至 Netscape 4)到现代浏览器的经验,样式标签可以放置在正文的任何​​位置。但是我不知道这是否适用于严格的文档。
      • 建议样式不属于正文的规范也需要符合规范的浏览器来支持它。在我看来,这听起来像是在规范中并受到支持,无论对作者的愚蠢的伪禁令如何。所以,是的,验证者说什么“无关紧要”。 github.com/whatwg/html/issues/1605#issuecomment-235961103
      • @WraithKenny 这是一个很棒的讨论。应包含在/答案中。引用,“我同意在正文中设置样式有效的 HTML 5。它不应该需要 HTML 5 一致性检查器来让开发人员意识到这通常是不好的做法。每个 Web 开发人员都知道样式通常是头部的一部分。但是有时候是无法避免的,应该是有效的。” github.com/whatwg/html/issues/1605#issuecomment-239589260
      • @WraithKenny 下一条评论,“文档正文中
      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 2014-10-09
      • 2022-12-05
      • 2018-09-25
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 2014-01-22
      相关资源
      最近更新 更多