W3C 勧告:HTML5における非 void 要素の自己終了タグ

2024-04-02

HTML5 で非 void 要素の自己終了タグは有効ですか?

詳細:

HTML5 では、void 要素非 void 要素 の 2 種類の要素があります。

  • void 要素:
    • <br><hr><img> など
    • これらの要素は、開始タグのみを持ち、終了タグは必要ありません。

非 void 要素 で自己終了タグを使用することは 構文的には有効 です。

<p/>

しかし、推奨されません

理由:

  • 自己終了タグは、古いバージョンの HTML でのみ必要でした。
  • HTML5 では、省略記法 を使用して、非 void 要素の終了タグを省略できます。
  • 自己終了タグを使用すると、コードが読みづらくなります。

推奨される書き方:

<p>ここにテキスト</p>

例外:

一部の非 void 要素は、属性 によって自己終了タグが必要になる場合があります。

  • <input> 要素: type="image" の場合
  • <textarea> 要素
  • <select> 要素: multiple の場合

これらの要素の場合、自己終了タグを使用する必要があります。

補足:

  • W3C の検証ツールでは、自己終了タグを使用してもエラーにはなりません。
  • 多くのブラウザは、自己終了タグを認識して正しく表示します。

HTML5 で非 void 要素の自己終了タグを使用することは 構文的には有効 ですが、推奨されません。省略記法を使用して、終了タグを省略することをおすすめします。




<p/>
<div/>
<span/>
<p>ここにテキスト</p>
<div>ここにコンテンツ</div>
<span>ここにテキスト</span>
<input type="image" />
<textarea></textarea>
<select multiple></select>



非 void 要素の終了タグを省略する他の方法

HTML5 では、非 void 要素の終了タグを省略するために、省略記法 を使用できます。

<p>ここにテキスト</p>
<div>ここにコンテンツ</div>
<span>ここにテキスト</span>

XHTML 構文では、すべての要素に終了タグが必要です。

<p>ここにテキスト</p>
<div>ここにコンテンツ</div>
<span>ここにテキスト</span>
<p>ここにテキスト</p>
<div>ここにコンテンツ</div>
<span>ここにテキスト</span>

注意事項:

  • 省略記法は、HTML5 でのみ使用できます。
  • XHTML 構文と XML 構文は、HTML5 では推奨されません。

html syntax w3c-validation


DOM操作で陥りがちな落とし穴!JavaScriptで「送信は関数ではありません」エラーを回避する方法

送信ボタンの ID または名前のスペルミス送信ボタンに誤った ID または名前が指定されていると、JavaScript がそのボタンを認識できず、このエラーが発生します。解決策:送信ボタンの ID または名前が正しく記述されていることを確認してください。...


HTMLとJavaScriptで実現!onclick関数に文字列パラメータを渡してユーザーとのインタラクションを強化

HTMLにおいて、ボタンやリンクをクリックした際に、JavaScript関数に文字列パラメータを渡すことはよくあるタスクです。これは、動的にコンテンツを更新したり、ユーザー入力情報を処理したりする際に役立ちます。方法この操作には主に2つの方法があります。...


AngularJSで要素を削除:ng-click、ng-repeat、filterパイプを駆使

AngularJSで、ng-clickディレクティブを使用して、配列から要素またはオブジェクトを削除する方法について説明します。例次の例では、$scope. itemsという配列にアイテムのリストが格納されています。各アイテムには、nameとageというプロパティがあります。...


MutationObserverで消える要素を監視する

解決策:この問題は、いくつかの方法で解決できます。方法 1: MutationObserverを使用するMutationObserverは、DOMに変更が発生したときに通知するAPIです。フォーカスを失ったときに要素がDOMから削除される場合、MutationObserverを使用して変更を検出できます。...


HTML、Angular、TypeScriptにおける「Cannot approach Typescript enum within HTML」エラーの解決策

原因:HTMLはJavaScriptとは異なる言語であり、TypeScriptの列挙型を直接理解できません。そのため、HTMLテンプレート内で列挙型の値を参照しようとすると、エラーが発生します。解決策:このエラーを解決するには、以下のいずれかの方法を使用できます。...