web-dev-qa-db-ja.com

HTMLの<body>タグ内の<style>タグがW3Cで検証できないのはなぜですか?

重複の可能性:
<STYLE>はHTMLドキュメントの<HEAD>にある必要がありますか?

私はCMSシステムを開発したチームの一員です。

検証はSEOコンサルタントの要件であるため、W3C標準に検証する方法でHTMLページの<style>内に<body>タグを挿入できるようにしたいと考えています。

スタイルタグは、すべてのブラウザのbodyタグ内で完全に機能しますが、検証を拒否します。

22
chris

HTML DTDはそれを許可しないため、検証されません。関係ありません、とにかくすべてのブラウザがそれをサポートしています。

26
Spliffster

HTML 4仕様では、BODY要素ではなくHEAD要素内にあると想定されています。この関連する(重複する?)質問も参照してください。

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

W3C HTML 4.01 ref on <style>

HTMLでは、ドキュメントの[〜#〜] head [〜#〜]セクションに任意の数のSTYLE要素を含めることができます。

7
RichardTheKiwi

<style>要素には、ドキュメント全体に適用されるメタデータが含まれています。これが<head>要素は含むように設計されました。彼らが頭の中に住むことは理にかなっているので、仕様が彼らがいることを要求するところです。

4
Quentin

文字通り、<style>タグ内の<body>タグは、すべてのHTML仕様で存在できないとされているため、検証されません。

なぜスペックではそう言っていますが、わかりません。この要件はまだ最新のHTML仕様にあり、最近では、以前の仕様で禁止されていた現実の世界で機能するもの(たとえば、<style>タグのtype属性の省略)が許可されています。要件がまだあるのには理由があるに違いないと思います。

本文に<style>タグを含めると、ページのレンダリングが難しく/遅く/信頼性が低くなる場合があると思います。

2
Paul D. Waite

何に対して検証していますか? HTML、XHTML Transitional、XHTML strict?

おそらく、インラインスタイルがXHTMLStrictでは無効であるためです。代わりにclass="foo"を使用し、CSSファイル内でfooを定義する必要があります。

0
JK.