LoginSignup
101
84

More than 5 years have passed since last update.

<br /> じゃなくて <br> だよ

Last updated at Posted at 2014-07-29

まとめ

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の指定は別
  • インラインでCSSとJSが書きにくい
    • 全部 <>を含む場合は必ず CDATA セクションを用いる
  • タグが省略できない
    • 殆どの人が省略してると気付いていない tbody要素とかね。(追記: tbodyの省略についてはコメントを参照ください)
  • 属性が省略できない
    • <input autofocus="autofocus"> とか

などの面倒さがあるので「俺はどうしてもXHTMLで書きたいんだ」という人でなければ書くことはないでしょう。
またSEO的にもメリットは無いでしょう。

じゃあXHTMLは守らないけど <br />って書きたい

かまいません、もし

シーを渡り、べトナムでも皆にラブされている事を知り、この曲の凄さがボディにしみて来ました

引用: 名言・格言『ルー大柴さんの気になる言葉』一覧リスト | iso.labo

のようなコードが書きたいのであれば、ですが。

おわり

たぶん合ってるけど間違いがあれば突っ込みおねがいします。

101
84
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
101
84