簡単に言えば、いくつかの用語: 紛らわしいことに、"HTML" は 2 つのことを意味するようになりました。
- Web ページなどで使用するものを構成するさまざまな種類の要素の定義。これは、呼ばれる要素があり、それが何のためにあるのかを教えてくれ
div
ます。
- それの 2 つのシリアル化の 1 つ(記述された形式)。これは、
div
次のような要素を記述することを示しています<div>content</div>
。
HTML のもう 1 つのシリアル化は XHTML です。XHTML は XML であるため、2 つのシリアル化は場所が異なります。
HTML では、 のようにコンテンツを持たないいくつかの要素が定義<br>
されており、HTML シリアライゼーションでは通常、 のように記述されます<br>
。XHTML シリアライゼーションでは、XML ではすべてのタグを閉じる必要があり<br>
、開始タグにすぎないため、これが問題になります。末尾の直前にスラッシュ ("solidus") を置くと>
タグが閉じられるため、XHTML では に<br>
なり<br/>
ます。はHTML シリアライゼーションでは許容されますが、何の役にも立ちませ/
ん。XHTML でのみ目的を果たします。(非常に古いブラウザでは、solidus の前にスペースが必要な場合があることに注意してください<br />
。
これは、コンテンツをまったく持たないや などのvoid要素、および外部要素(MathML および SVG)にのみ当てはまります。たとえば、が空になる場合でも、 を書くことはありません。空の正しい形式は常に(HTML または XHTML シリアライゼーションのどちらでも) です。<br>
<input>
<div/>
div
div
<div></div>
仕様の完全な詳細、特に§8.1.2.1。
あなたの2つの具体的な例に関して:最初のものはHTMLシリアライゼーションでのみ有効です。2 つ目は HTML シリアライズでも有効で、autofocus
属性に値があれば XHTML シリアライズでも有効です (XML では属性に値が必要なので、 と書く必要がありますautofocus="autofocus"
)。