HTMLのメタタグとリンクタグを閉じる必要がありますか?


133

HTMLヘッドセクションでメタタグとリンクタグを決して閉じていない誰かのHTMLを読んでいました。コードは正常に機能しました。これらのタグを閉じることはオプションですか?

タグを閉じないと不正だと思いました。

回答:


167

タグは、常にタグ近い記号で閉じなければならない>(私たちは名目上非XHTML HTMLに適用する特定のSGMLのルールを無視しますが、ブラウザに実装されなかった場合)。

質問することは、要素を終了タグで閉じる必要があるかどうかです。その答えは、XHTML以外のHTML(HTMLシリアライゼーションのHTML5を含む)であり、metaおよびlink要素に終了タグは必要ないか、許可されないということです。ただし実際には、ブラウザーは明示的な終了タグと、それらを使用する場合は/before カーゴカルトを無視>します。また、HTML5では/、HTMLでのシリアル化も正式に許可することで、この許容性を規定しています。

XHTMLではXMLルールが適用されるため、すべての要素には例外なく開始タグと終了タグの両方が必要ですが、要素のコンテンツが空の場合、たとえばの<meta name="foo" content="bar"/>ように、同じタグを両方のロールに使用できます<meta name="foo" content="bar"></meta>。XML(XHTML)コンテンツタイプのドキュメントを適合ブラウザに提供するときにこれに違反すると、ドキュメントはまったく表示されません。代わりにエラーメッセージが表示されます。

XHTMLサーバーをHTMLコンテンツタイプ(Content-Type: text/html)で使用する場合、XHTMLドキュメントはほとんど常にWeb上にあるため、ブラウザは実際には非XHTML HTMLルールを適用します。

要約する:

  • 通常は、使用<meta ...>せずに/
  • XHTML解析が実際に適用されるコンテキストで実際にXHTMLを使用している場合は、XMLルールを試してください(そして、それらを知っていることを確認してください)
  • 上司があなたに書くよう<meta ... />に言ったら、そうします。これは役に立ちませんが、害を及ぼすことはありません(たとえば、HTML 4.01 doctypeに対して検証しようとした場合を除きます)。

3
/>を使用すると、Googleボットがメタロボットタグを認識しない問題が発生しました。おかしい!!!
DevZer0 2015年

13
「カーゴカルト」という言葉はこの文脈では不適切だと思います。一部の人々は、XHTMLが普及しなかったことを単に抑圧しただけで、これらの要素を閉じます。
マーカス

6
ペダントアラート!「カーゴカルト」は、通常の練習ではハイフンが付けられていませんが、フレーズ全体を他の形容詞として使用する場合のみです(つまり、「カーゴカルトプログラミング」、「カーゴカルト/ビフォー>」)。混乱を招いてインターネットを汚すのを避けるために明確にしようと思ったところです。</pedant_alert>:)
Aaron Wallentine 2016年

1
@ DevZer0-スラッシュが原因でしたか?私はそのようなことにGoogleが柔軟であることを期待します。
Simon East

3
HTMLをXHTMLルールと一致させるのは、/の前に>を含める理由ではありませんか?
カイルデラニー

28

それはdoctypeに依存します。HTML5を閉じる必要はありません。XHTMLはそうします。

HTML5では、いわゆるvoid要素(コンテンツを持つことができない要素)は自己終了するため、閉じる必要はありません。ただし、閉じても有効です。

詳しくはこちら:void-elements


4
HTML5には2つのシリアル化があり、そのうちの1つ(XHTMLシリアル化)は終了タグを必須にします。
Jukka K. Korpela 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.