* p 要素型 (HTML, XHTML 1) [11] [DFN[[CODE(HTMLe)[p]] 要素]]は、[DFN[[[段落]]]]を表します。 [16] 仕様書: - [[HTML 2.0]]: [[RFC 1866]] 5.5.1. Paragraph: P - [[HTML 4]]: -- -- -- Visual rendering of paragraphs (参考) [5] 段落とは何か。 HTML 4 [SRC[HTML 4 9.3]] 曰く: > Authors traditionally divide their thoughts and arguments into sequences of paragraphs. The organization of information into paragraphs is not affected by how the paragraphs are presented: paragraphs that are double-justified contain the same thoughts as those that are left-justified. > [[著者]]は、伝統的に、自身の意思や主張を段落の連続体に分割します。 段落としての情報の組織化は、その段落がどう表現されるかには影響されません。 両端揃えの段落は、左揃えの段落と同じ意見を含んでいます。 [12] : [[開始タグ]]: 必須 : [[終了タグ]] (HTML 2, HTML 4): 省略可能 :終了タグ (XHTML 1): 必須 : [[内容模型]]: [CODE(SGML)[(%[[inline]];)*]] : 出現できる文脈 : [CODE(SGML)[%[[block]];]] な文脈 : [[属性]] : ,[CODE(HTMLe)[[[align]]]] ,,,揃え ,[HTML4] 非推奨 ,[CODE(HTMLa)[[[class]]]] ,,,[[級]] ,[HTML4] %[[coreattr]] ,[CODE(HTMLa)[[[dir]]]] ,,,[[書字方向]] ,[HTML4] %[[i18n]] ,[CODE(HTMLa)[[[id]]]] ,,,一意識別子 ,[HTML4] %coreattr ,[CODE(HTMLa)[[[lang]]]] ,,,[[自然言語]] ,[HTML4] %i18n ,[CODE(HTMLa)[[[xml]]:lang]],,,自然言語 ,[XHTML1] ,[CODE(HTMLa)@em[[[mode]]]],,,[[折返し]],非標準,[Vodafone] ,[CODE(HTMLa)[[[onclick]]]] ,,, ,[HTML4] %[[events]] ,[CODE(HTMLa)[[[ondblclick]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[onkeydown]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[onkeypress]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[onkeyup]]]] ,,, ,[HTML4] %events ,[CODE(HTMLa)[[[onmousedown]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseout]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseover]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseup]]]],,, ,[HTML4] %events ,[CODE(HTMLa)[[[style]]]] ,,,スタイル情報 ,[HTML4] %coreattr ,[CODE(HTMLa)[[[title]]]] ,,,注釈的題 ,[HTML4] %coreattr [[#comment]] ** 内容模型 [4] [CODE(HTMLe)[p]] 要素は、 (歴史的理由により、) [[行内要素]]しか[[内容]]に含めることができません。 [CODE(HTMLe)[p]] 要素型自体を含めることも、もちろんできません。 [[#comment]] *** 空の p 要素 [13] HTML 4 は、 - [[著者]]が空の [CODE(HTMLe)[p]] 要素を使うことは非推奨 (discourage) - [[UA]] は空の [CODE(HTMLe)[p]] 要素は無視するべき (should) としています。 [[#comment]] ** レンダリング [14] [[HTML 4]] は、[CITE[Visual rendering of paragraphs]] ([[参考]]) で、 段落のレンダリングについて言及しています。 (HTML 4 のこの章の説明自体は特に [CODE(HTMLe)[p]] 要素に限定したものではなく、 一般に文内容についての考察でしょう。) 概略: 次に述べるのは、現在の幾つかの[[視覚UA]] の動作についてである。 - [[スタイルシート]]を使えば、段落の[[書式付け]]をよりよく制御できる。 [SRC[RFC 1866 5.5.1., HTML 4]] - 段落は通常 ([CODE(XSL)[[[lr]]]] では) 左を揃え、 右はぎざぎざにレンダリングされる。 [SRC[HTML 4]] - 段落は伝統的に前後に空白(行)を置いてレンダリングされる。 [SRC[RFC 1866 5.5.1., HTML 4]] -- 半行から1行くらい [SRC[RFC 1866 5.5.1.]]。 -- これとは異なり、小説なんかだと段落間は特に空けずに、 段落の最初の行を[[字下げ]]する。 [SRC[HTML 4]] - 典型レンダリングでは最初の行を字下げすることもある [SRC[RFC 1866 5.5.1.]]。 - 1993年の [[NCSA Mosaic]] 以来の慣習で、普通は両[[余白]]を揃えない。 ちゃんとした[[ハイフン付け]]をしないとこれをするのは難しいのだ。 [SRC[HTML 4]] - スタイルシートとか、部分画素 (subpixel) 配置によって[[アンチエイリアス]]したフォントとか、 以前よりも[[著者]]の選択肢は豊かになっている。 [SRC[HTML 4]] - スタイルシートで文字の大きさ、フォントの様式、余白、段落前後の間隔、 最初の行の字下げ、端揃えその他の詳細な制御ができる。 [SRC[RFC 1866 5.5.1., HTML 4]] -- UA の[[既定スタイル]]は前述のようになっている。 [SRC[HTML 4]] -- やろうと思えば段落境界が分からないような感じにもできるが、 混乱の元であるからにして[RUBYB[非推奨][discourage]]。 [SRC[HTML 4]] - 視覚 UA は余白に合わせて文を折り返す。 [SRC[HTML 4]] -- 折り返しの算法は[[用字系]]に依存する。 -- [[西洋用字系]]では、文は[[空白]]をもってのみ折り返す[RUBYB[べき][should]]。 --- 初期の UA は誤って何かの要素の[[開始タグ]]直後や[[終了タグ]]直前でも折り返していたから、 終了タグの直後に[[読点]]があるような場合に変ちくりんなことになっていた。 [[#comment]] ** 実装 [1] [[mosaic]] や [[NN]] では、[CODE(HTMLe)[p]] [[タグ]]を連続させても1つ分の空行しかできませんでした。 [2] >>1 は現代的に言えば、[[既定スタイル]]に [SAMP(CSS)[[CODE(HTMLe)[p]] + [CODE(HTMLe)[p]] {[[margin-top]]: 0}]] とかいろいろ書いてあったとでも思えばいいでしょう。 [3] >>1-2 は別に HTML の規定ではなく、同時代のほかの [[WWWブラウザ]], たとえば [[Arena]] は [CODE(HTMLe)[p]] の数だけ空行を作りました。 [[#comment]] ** 歴史 *** お尻

から段落要素へ [15] ''Toward Closure on HTML'' (1994年4月) で [[Dan Connolly]] は、 [CODE(HTMLe)[p]] 要素についてこういっています。 - なぜ [[TeX]] のように空行で段落区切りにせず、 [CODE(HTML)[

]] と書かないといけないのか? -- 一つ、もう遅すぎる。 -- 二つ、みんながそれを望むのではない。 たとえば Dan はリストの途中なんかで気楽に空行を入れたいのだ。 -- 三つ、[[短縮参照]]を使うことにしたら [CODE(SGML)[[[SHORTREF]]]] 有効だから [SAMP[]] を置くように変えるだけ。 -- [CODE(HTML)[

]] は [CODE(SGML)[[[OMITTAG]]]] を使えば省略できる。 -- そうすれば DTD もより綺麗になるし、もっと意味を成すし。 [[#comment]] *** メモ [[#comment]] ** 例 [17] 段落の例 [SRC[RFC 1866 5.5.1.]] [PRE(HTML)[

This Heading Precedes the Paragraph

This is the text of the first paragraph.

This is the text of the second paragraph. Although you do not need to start paragraphs on new lines, maintaining this convention facilitates document maintenance.

This is the text of a third paragraph.

]PRE] [[#comment]] ** メモ [[#comment]] * メモ