HTML5 における空要素の閉じ方

やっと Web 関連のネタ書くよー

HTML5 における空要素 (br 要素や hr 要素など、終了タグが不要な要素) の閉じ方は、てっきり /> でないとダメかと思っていた。でもどうやら > で良いようだ。

空要素は /> で閉じるのですか? それとも > で閉じるのですか?

HTML の空要素(たとえば、br, img, input 要素)に終端スラッシュをいれる必要はありません。
/> の代わりに > と書けば良いだけです。これは HTML4 と同じです。しかし、XHTML1 の利用が広まっているため、かなり多くのページで、終端スラッシュが使われています。そのため、XHTML1 から HTML への移行を容易にするために、終端スラッシュの構文を HTML の空要素で使うことができるようになりました。

この新 HTML 仕様では、MathML 要素も組み込めるようになっています。math 要素の中にある要素に終端スラッシュを入れれば、それは XML の中で使われているのと同様の意味を持ちます。つまり、それは要素を閉じます。しかし、これはそのコンテキストの中だけに適用され、通常の HTML 要素では機能しません。

というわけで、

<br/>
<br />

↑とは書かなくてもよくて (書いても NG とはならない)、

<br>

↑が一番正しい、と。

<br></br>

↑こう書くのは NG。

XHTML の場合

ちなみに、XHTML の場合、<br/> よりは、<br /> と、スラッシュの手前に半角スペースを入れるのが推奨されるようだ。古いブラウザにも解釈させられるためだとか。

その他参考