BRタグが<br />と書ける理由 『<br> が <br /』で『</br> が >』になる

古い仕様のSGMLでは、空要素の終了タグは省略してもいいのではなく、省略しなければならない
しかしXMLなどの新しいSGMLでは終了タクはいかなる場合でも省略してはいけないとなっています。

[参考記事] 『開始タグ』と『閉じタグ』

そこでこの相反するルールのためにBRタグなど空要素のタグが<br />と表記されます。

これにはNETという概念が利用されています。
NET(Null End Tag)簡略終了タグの意味で、終了タグを簡易的に書く記述法で、区切り子を使います。
HTMLでの区切り子は『 / 』で、開始タグの終了( > )もNET区切り子を使用します。

例としてAタグなどは次のように略されます。

<a href="sample.html">テキスト</a>
           ↓
<a href="sample.html"/テキスト/

さらにXMLではNESTC(NET-Enabling Start-Tag Closer NET可能開始タグ終了区切り子)という区切り子があり、NET可能開始タグの終了区切り子とNET(終了タグ)に違う文字が使えるようになっています。

先のAタグは次のようになります。

<a href="sample.html">テキスト</a>
           ↓
<a href="sample.html"/テキスト>

となります。
XMLでNETが使われるのは空要素の場合だけです。

そこで冒頭の相反するルールの矛盾を解消するために、この記法が利用されます。

<br></br>
   ↓
<br//
   ↓
<br/>

<br/>だと認識ができないのでスペースを入れて<br />となります。

つまり『 /> 』が『</br>』の代わりではなく、『<br /』が『<br>』で『>』が『</br>』ということになります。

『 / 』と『 > 』は区切りのため、間にスペースを入れてはいけません。スペースが内容とみなされるからです。

古い仕様のSGMLには『 DELIM NET "/>" 』として、『 /> 』が使えるようになっています。

関連記事

スポンサーリンク

{math}関数 テンプレート内で数学の計算をする

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る