私はCMSシステムを開発したチームの一員です。
検証はSEOコンサルタントの要件であるため、W3C標準に検証する方法でHTMLページの<style>
内に<body>
タグを挿入できるようにしたいと考えています。
スタイルタグは、すべてのブラウザのbodyタグ内で完全に機能しますが、検証を拒否します。
HTML DTDはそれを許可しないため、検証されません。関係ありません、とにかくすべてのブラウザがそれをサポートしています。
HTML 4仕様では、BODY要素ではなくHEAD要素内にあると想定されています。この関連する(重複する?)質問も参照してください。
does-style-have-to-be-in-the-head-of-an-html-document
HTMLでは、ドキュメントの[〜#〜] head [〜#〜]セクションに任意の数のSTYLE要素を含めることができます。
<style>
要素には、ドキュメント全体に適用されるメタデータが含まれています。これが<head>
要素は含むように設計されました。彼らが頭の中に住むことは理にかなっているので、仕様が彼らがいることを要求するところです。
文字通り、<style>
タグ内の<body>
タグは、すべてのHTML仕様で存在できないとされているため、検証されません。
なぜスペックではそう言っていますが、わかりません。この要件はまだ最新のHTML仕様にあり、最近では、以前の仕様で禁止されていた現実の世界で機能するもの(たとえば、<style>
タグのtype
属性の省略)が許可されています。要件がまだあるのには理由があるに違いないと思います。
本文に<style>
タグを含めると、ページのレンダリングが難しく/遅く/信頼性が低くなる場合があると思います。
何に対して検証していますか? HTML、XHTML Transitional、XHTML strict?
おそらく、インラインスタイルがXHTMLStrictでは無効であるためです。代わりにclass="foo"
を使用し、CSSファイル内でfooを定義する必要があります。