まとめ
HTMLでタグを書く時に、<br />のようにスラッシュ/を入れる書き方がありますが、<br>と書くほうが良いでしょう。<img>とか<input>とか<meta>とかも全部いっしょです。
詳細
なんで後ろに / をつけるの?
昔 XHTML というものを流行らせようとしたときの名残です。
XHTMLはXMLとして正しくないといけないので <br>単独ではダメで<br />か<br></br>と書かなくてはいけません。
(ちなみにXML的には<br/>でよいのですが、当時のブラウザはそれを正しいタグとして認識できなかったため、<br />と書く必要がありました)
XHTML ?
昔 W3C という団体が「これからのWebは機械からも利用できるようにすべきだ。だからXMLとして読める形式にしよう」と言い出しました。ところが
- XHTMLのMIME-TYPEだとWebページとして表示されないブラウザがある
- XHTMLで書くと正しく描画できないブラウザがある
- XHTMLで書くのは難しく、結局XMLの仕様が守れてないページが多い
- というかXHTMLより単純なHTMLの仕様すら守れてないページがごろごろ
などの理由からあまり良い評価がされませんでした。さらに各ブラウザを作ってるところが W3Cに「理想だけの仕様を勝手にきめてんじゃねーよ」などといい WHATWG という組織がつくられ、HTML5の仕様策定する結果に。
というわけで、XHTMLはあんまり良いもんじゃないです。(と思ってます)
それでも XHTML で書いてもいいんだよね
もちろんかまいません。ただ上記の通り、古いブラウザだと動かないことがある上に
- XML宣言とDOCTYPE宣言の両方が必要(追記: XML宣言は省略する方法もあるようだ)
- いくつかの属性指定が冗長
- HTMLの
lang指定とXMLのlang指定は別 - HTMLのエンコーディング指定とXMLの指定は別
- HTMLの
- インラインでCSSとJSが書きにくい
- 全部
<や>を含む場合は必ず CDATA セクションを用いる
- 全部
- タグが省略できない
-
殆どの人が省略してると気付いていない(追記: tbodyの省略についてはコメントを参照ください)tbody要素とかね。
-
- 属性が省略できない
-
<input autofocus="autofocus">とか
-
などの面倒さがあるので「俺はどうしてもXHTMLで書きたいんだ」という人でなければ書くことはないでしょう。
またSEO的にもメリットは無いでしょう。
じゃあXHTMLは守らないけど <br />って書きたい
かまいません、もし
シーを渡り、べトナムでも皆にラブされている事を知り、この曲の凄さがボディにしみて来ました
のようなコードが書きたいのであれば、ですが。
おわり
たぶん合ってるけど間違いがあれば突っ込みおねがいします。