HTML5 では (非 void) 自己終了タグは有効ですか? 質問する

HTML5 では (非 void) 自己終了タグは有効ですか? 質問する

W3C バリデーターウィキペディア/>)は、自己終了タグ(「 」で終わるタグ)に対して警告を表示します。無効でない要素。(ボイド要素これらは、コンテンツがまったく含まれない可能性のあるものです。) これらは HTML5 でも有効ですか?

受け入れられる空要素の例をいくつか示します。

<br />
<img src="" />
<input type="text" name="username" />

拒否された非空要素の例:

<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />
注:
W3C バリデーターは実際には無効な自己終了タグを受け入れます。著者は当初、単純なタイプミス (\>ではなく/>) のために問題を抱えていましたが、自己終了タグは一般に HTML5 では 100% 無効であり、回答ではさまざまな HTML フレーバーにわたる自己終了タグの問題について詳しく説明しています。

ベストアンサー1

  • (理論的には) HTML 4では、 (はい、まったく<foo /ありませんが)は (つまり、意味(つまり) と意味) につながります。私が「理論的には」という用語を使用するのは、これはブラウザがサポートしきれていないSGMLルールだからです。サポートがほとんどありませんでした (私が見たのは、><foo><br /><br>><br>&gt;<title/hello/<title>hello</title>emacs-w3m) それ仕様では、著者に構文を避けるようにアドバイスしている。

  • XHTMLでは、<foo />手段<foo></foo>これはすべてのXML文書に適用されるXMLルールです。とはいえ、XHTMLはしばしば として提供され、text/html(少なくとも歴史的には) として提供される文書とは異なるパーサーを使用してブラウザによって処理されますapplication/xhtml+xml。W3Cは互換性ガイドラインXHTML の場合は に従いますtext/html。(基本的に、要素が EMPTY として定義されている場合 (および終了タグが HTML 仕様で禁止されている場合) のみ、自己終了タグ構文を使用します)。

  • HTML5では、<foo /> 要素の種類によって異なります:

    • 指定されたHTML要素では空要素(本質的には「HTML5 より前に存在し、コンテンツを持つことが禁止されていた要素」)、終了タグは単純に禁止されています。開始タグの末尾のスラッシュは許可されていますが、意味はありません。これは、XML 中毒の人 (および構文ハイライト) のための単なる構文糖です。
    • 他のHTML要素では、スラッシュはエラーただし、エラー回復によりブラウザはこれを無視し、タグを通常の開始タグとして扱います。これにより通常、終了タグが欠落し、後続の要素が兄弟ではなく子になります。
    • 外部要素 (SVG などの XML アプリケーションからインポートされたもの) は、これを自己終了構文として扱います。

おすすめ記事