1. ホーム
  2. html

[解決済み] HTML5で(非空白の)自己閉鎖タグは有効ですか?

2022-03-14 03:50:16

質問

その W3Cバリデータ ( ウィキペディア は、自己閉鎖タグ (末尾に " を持つもの) を好みません。 /> ") の 非空洞 要素で構成されます。( Void要素 は、いかなるコンテンツも含まない可能性があるものです)。これらはHTML5でも有効ですか?

のいくつかの例は 受入 void 要素を使用します。

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

のいくつかの例 却下 非void要素。

<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />

<サブ
W3Cバリデーターは、実際にはvoidの自己閉鎖タグを受け入れます。著者はもともと、単純なタイプミスのために問題がありました( \> ではなく /> しかし、自己閉鎖タグは一般にHTML5では100%有効ではなく、回答はさまざまなHTMLフレーバーにおける自己閉鎖タグの問題について詳しく説明しています。

どのように解決するのですか?

  • (理論的には) HTML 4 , <foo / (そうです。 > という意味です。 <foo> (につながる)。 <br /> 意味 <br>> (すなわち <br>&gt; ) と <title/hello/ 意味 <title>hello</title> ). 私が「理論的に」という言葉を使ったのは、これが SGML のルールは、ブラウザのサポートが非常に貧弱でした。あまりにサポートが少ないので(私が見たのは エマックスウェブ ) そのため という構文を避けるよう勧告しています。 .

  • XHTML , <foo /> というのは <foo></foo> . これは XML のルールは、すべてのXML文書に適用されます。とはいえ、XHTMLはしばしば text/html として提供されるドキュメントとは異なるパーサーを使用してブラウザによって処理されます。 application/xhtml+xml . W3Cでは 互換性ガイドライン として、XHTMLのために従うべき text/html . (本来は 要素がEMPTYとして定義されている場合のみ、自己閉鎖タグ構文を使用します(そして、終了タグはHTML仕様で禁止されていました))。

  • HTML5 の意味は <foo /> は要素の種類に依存します。 :

    • として指定されたHTML要素について void要素 (本質的には "HTML5以前に存在し、内容を持つことが禁じられていた要素")、終了タグは単に禁じられます。開始タグの末尾にあるスラッシュは許可されていますが、何の意味もありません。これは、XMLにはまった人々(とシンタックスハイライト)のための単なる構文上の糖分なのです。
    • 他のHTML要素では、スラッシュは エラー しかし、エラーリカバリーにより、ブラウザはこのタグを無視し、通常の開始タグとして扱います。この場合、通常、終了タグが欠落し、後続の要素が兄弟ではなく、子要素となることになります。
    • 外国語要素(SVGなどのXMLアプリケーションからインポートされたもの)は、自己閉鎖構文として扱われます。