の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>>
<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 アプリケーションからインポートされたもの) は、これを自己終了構文として扱います。