* br 要素型 (HTML, XHTML 1)
[1] [DFN[[CODE(HTMLe)[br]] 要素]]は、文 (text) の現在の行を強制的に中断
(終了) させます。
[9]
仕様書:
-[[SI 4281]]:1998
--[CSECTION[6.1.4 Elements with no directionality]]
-[[HTML 4]]
--
[2]
:[[開始タグ]]:必須
:[[終了タグ]]:禁止
:[[内容模型]]:[[強制空要素]]
:[[属性]]:
,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,[HTML4] %[[coreattr]]
,[CODE(HTMLa)[[[clear]]]] , , ,流し込み制御 ,[HTML4] 非推奨
,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]] , , ,注釈的題 ,[HTML4] %coreattr
[5]
[[Dan Connolly]] の [[html.dtd]] に最初に [CODE(HTMLe)[br]] 要素型が定義されたのは [Q[1.7.2.2 1994/04/01 20:30:17]] で、属性無しの強制空要素でした。
(おそらく実装に合わせて) DTD に追加はしたものの、[[実体参照]] [CODE(HTML)[&br;]] を定義して、それを使うべきだと (少なくても Dan は) 考えていた模様です。
([[名無しさん]])
[6]
ちなみに、 [CODE(HTML)[[[nbsp]]]] が最初に定義されたのが少し前の [Q[1.6]] ([[HTML 1.0]] I-D の版) です。こちらも、[[処理指令]]として定義しようと考えていたようです。
([[名無しさん]])
[7]
>>5 [CODE(HTMLe)[br]] 要素型の登場はもうちょっと遡れます。 [[www-talk]] で詩や住所のマークの仕方が話題にのぼりました。 [WEAK[(どこかで聞いたような話だ。)]] その話の中で、
''Re: RE two PREs <9306250423.AA12611@wintermute.ncsa.uiuc.edu>''
(1993年6月24日)
で、 [[Marc Andreessen]] が、新しい行を表すものがあればいい、と言いました。
これを受けて [[Dave Raggett]] が、
''Re: RE two PREs <9306251045.AA14172@manuel.hpl.hp.com>''
(1993年6月25日) で [[HTML+]] に [CODE(HTMLe)[br]] を追加した、と言っています。
[[NCSA Mosaic]] に実装されたのがいつなのかは分かりません。
([[名無しさん]])
[8]
HTML 4 DTD の注釈 (参考) には [Q[forced line break]] ([Q[強制改行]]) とあります。
([[名無しさん]] [sage])
[[#comment]]
** レンダリング
[3] >>1 の通り、[[視覚UA]] では、強制的に[[改行]]されます。
[[bidi]] 算法の適用にあたっては、 [CODE(char)[LINE SEPARATOR]]
文字と同じように扱うべき (should) と HTML 4 は言っています。
[4] [CODE(HTMLa)[clear]] 属性 (非推奨) が使われているときは、
[[流し込み]]がその値に従って制御されます。
この機能は今では[[スタイルシート]]を使うことになっています。
[[CSS]] なら [CODE(CSS)[[[clear]]]] 属性を使います。
[10] '''Bidi との関係''':
[CODE(HTMLe)[[[br]]]] [[要素]]は、 [[bidi]]
的には単なる[[改行]]であって特に影響はありません。
[SRC[SI 4281 6.1.4]]
[[#comment]]
** 実装について
- [1] [[WinIE]] 向け、 [CODE(HTML)[
]] のようにして改行幅を調整するらしい。何か間違っている気がする。とはいうものの、 [[CSS2]] 的には [CODE(HTML)[br]] 要素は [CODE(CSS)[br:after{content:"\A"}]] だから、それで行の高さが変わるなら別にいいような気もする。
- [2] >>1 でも [CODE(CSS)[\A]] == [CODE(char)[[[LF]]]] は[[改行]]だから。。。
[[#comment]]
* メモ