Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

まとめ

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

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

おわり

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

irxground
Rust, Ruby, C#, HTML/CSSが好き
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away