まとめ
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 />
って書きたい
かまいません、もし
シーを渡り、べトナムでも皆にラブされている事を知り、この曲の凄さがボディにしみて来ました
のようなコードが書きたいのであれば、ですが。
おわり
たぶん合ってるけど間違いがあれば突っ込みおねがいします。