/[pub]/suikawiki/sw4data/ids/2/77.txt
Suika

Contents of /suikawiki/sw4data/ids/2/77.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.20 - (show annotations) (download)
Tue Jun 14 07:38:10 2011 UTC (13 years, 5 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.19: +5 -1 lines
File MIME type: text/plain
updated by (anon)

1
2 * p 要素型 (HTML, XHTML 1)
3
4 [11] [DFN[[CODE(HTMLe)[p]] 要素]]は、[DFN[[[段落]]]]を表します。
5
6 [16] 仕様書:
7 - [[HTML 2.0]]: [[RFC 1866]] 5.5.1. Paragraph: P
8 - [[HTML 4]]:
9 -- <IW:HTML4:"struct/text.html#h-9.3">
10 -- <IW:HTML4:"struct/text.html#edef-P">
11 -- Visual rendering of paragraphs (参考)
12 <IW:HTML4:"struct/text.html#idx-paragraph">
13
14 [5] 段落とは何か。 HTML 4 [SRC[HTML 4 9.3]] 曰く:
15
16 > 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.
17
18 > [[著者]]は、伝統的に、自身の意思や主張を段落の連続体に分割します。
19 段落としての情報の組織化は、その段落がどう表現されるかには影響されません。
20 両端揃えの段落は、左揃えの段落と同じ意見を含んでいます。
21
22 [12]
23 :[[開始タグ]]:必須
24 :[[終了タグ]] (HTML 2, HTML 4):省略可能
25 :終了タグ (XHTML 1):必須
26 :[[内容模型]]:[CODE(SGML)[(%[[inline]];)*]]
27 :出現できる文脈:[CODE(SGML)[%[[block]];]] な文脈
28 :[[属性]]:
29 ,[CODE(HTMLe)[[[align]]]] , , ,揃え ,[HTML4] 非推奨
30 ,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,[HTML4] %[[coreattr]]
31 ,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,[HTML4] %[[i18n]]
32 ,[CODE(HTMLa)@en[[[csclick]]]] , , , ,非標準
33 ,[CODE(HTMLa)@en[[[dynamicanimation]]]] , , , ,非標準 ,[[FrontPage]]
34 ,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,[HTML4] %coreattr
35 ,[CODE(HTMLa)@en[[[mce_keep]]]] ,[CODE(HTML example)@en[true]] , , ,非標準
36 ,[CODE(HTMLa)[[[lang]]]] , , ,[[自然言語]] ,[HTML4] %i18n
37 ,[CODE(HTMLa)[[[xml]]:lang]] , , ,自然言語 ,[XHTML1]
38 ,[CODE(HTMLa)@em[[[mode]]]] , , ,[[折返し]] ,非標準 ,[Vodafone]
39 ,[CODE(HTMLa)[[[onclick]]]] , , , ,[HTML4] %[[events]]
40 ,[CODE(HTMLa)[[[ondblclick]]]] , , , ,[HTML4] %events
41 ,[CODE(HTMLa)[[[onkeydown]]]] , , , ,[HTML4] %events
42 ,[CODE(HTMLa)[[[onkeypress]]]] , , , ,[HTML4] %events
43 ,[CODE(HTMLa)[[[onkeyup]]]] , , , ,[HTML4] %events
44 ,[CODE(HTMLa)[[[onmousedown]]]] , , , ,[HTML4] %events
45 ,[CODE(HTMLa)[[[onmouseout]]]] , , , ,[HTML4] %events
46 ,[CODE(HTMLa)[[[onmouseover]]]] , , , ,[HTML4] %events
47 ,[CODE(HTMLa)[[[onmouseup]]]] , , , ,[HTML4] %events
48 ,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr
49 ,[CODE(HTMLa)[[[title]]]] , , ,注釈的題 ,[HTML4] %coreattr
50 ,[CODE(HTMLa)@en[[[titleid]]]] ,[CODE(XML)@en[[[IDREF]]]] ,(なし) , ,非標準 ,[[HTMLayout]]
51 ,[CODE(HTMLa)@en[[[wrap]]]] , , , ,非標準
52
53
54 [[#comment]]
55
56
57 ** 内容模型
58
59 [4] [CODE(HTMLe)[p]] 要素は、 (歴史的理由により、)
60 [[行内要素]]しか[[内容]]に含めることができません。
61 [CODE(HTMLe)[p]] 要素型自体を含めることも、もちろんできません。
62
63 [[#comment]]
64
65
66 *** 空の p 要素
67
68 [13] HTML 4 は、
69 - [[著者]]が空の [CODE(HTMLe)[p]] 要素を使うことは非推奨 (discourage)
70 - [[UA]] は空の [CODE(HTMLe)[p]] 要素は無視するべき (should)
71
72 としています。
73
74 [[#comment]]
75
76
77 ** レンダリング
78
79 [14] [[HTML 4]] は、[CITE[Visual rendering of paragraphs]]
80 ([[参考]]) <IW:HTML4:"struct/text.html#idx-paragraph"> で、
81 段落のレンダリングについて言及しています。
82 (HTML 4 のこの章の説明自体は特に [CODE(HTMLe)[p]] 要素に限定したものではなく、
83 一般に文内容についての考察でしょう。)
84
85 概略:
86
87 次に述べるのは、現在の幾つかの[[視覚UA]] の動作についてである。
88 - [[スタイルシート]]を使えば、段落の[[書式付け]]をよりよく制御できる。
89 [SRC[RFC 1866 5.5.1., HTML 4]]
90 - 段落は通常 ([CODE(XSL)[[[lr]]]] では) 左を揃え、
91 右はぎざぎざにレンダリングされる。 [SRC[HTML 4]]
92 - 段落は伝統的に前後に空白(行)を置いてレンダリングされる。
93 [SRC[RFC 1866 5.5.1., HTML 4]]
94 -- 半行から1行くらい [SRC[RFC 1866 5.5.1.]]。
95 -- これとは異なり、小説なんかだと段落間は特に空けずに、
96 段落の最初の行を[[字下げ]]する。 [SRC[HTML 4]]
97 - 典型レンダリングでは最初の行を字下げすることもある
98 [SRC[RFC 1866 5.5.1.]]。
99 - 1993年の [[NCSA Mosaic]] 以来の慣習で、普通は両[[余白]]を揃えない。
100 ちゃんとした[[ハイフン付け]]をしないとこれをするのは難しいのだ。
101 [SRC[HTML 4]]
102 - スタイルシートとか、部分画素 (subpixel)
103 配置によって[[アンチエイリアス]]したフォントとか、
104 以前よりも[[著者]]の選択肢は豊かになっている。 [SRC[HTML 4]]
105 - スタイルシートで文字の大きさ、フォントの様式、余白、段落前後の間隔、
106 最初の行の字下げ、端揃えその他の詳細な制御ができる。
107 [SRC[RFC 1866 5.5.1., HTML 4]]
108 -- UA の[[既定スタイル]]は前述のようになっている。 [SRC[HTML 4]]
109 -- やろうと思えば段落境界が分からないような感じにもできるが、
110 混乱の元であるからにして[RUBYB[非推奨] [discourage]]。 [SRC[HTML 4]]
111 - 視覚 UA は余白に合わせて文を折り返す。 [SRC[HTML 4]]
112 -- 折り返しの算法は[[用字系]]に依存する。
113 -- [[西洋用字系]]では、文は[[空白]]をもってのみ折り返す[RUBYB[べき] [should]]。
114 --- 初期の UA
115 は誤って何かの要素の[[開始タグ]]直後や[[終了タグ]]直前でも折り返していたから、
116 終了タグの直後に[[読点]]があるような場合に変ちくりんなことになっていた。
117
118 [[#comment]]
119
120
121 ** 実装
122
123 [1] [[mosaic]] や [[NN]] では、[CODE(HTMLe)[p]]
124 [[タグ]]を連続させても1つ分の空行しかできませんでした。
125
126 [2] >>1 は現代的に言えば、[[既定スタイル]]に
127 [SAMP(CSS)[[CODE(HTMLe)[p]] + [CODE(HTMLe)[p]] {[[margin-top]]: 0}]]
128 とかいろいろ書いてあったとでも思えばいいでしょう。
129
130 [3] >>1-2 は別に HTML の規定ではなく、同時代のほかの [[WWWブラウザ]],
131 たとえば [[Arena]] は [CODE(HTMLe)[p]] の数だけ空行を作りました。
132
133 [[#comment]]
134
135
136 ** 歴史
137
138
139
140
141 *** お尻 <p> から段落要素へ
142
143 [15] ''Toward Closure on HTML'' (1994年4月)
144 <http://www.w3.org/MarkUp/html-spec/html-direction.html>
145 で [[Dan Connolly]] は、 [CODE(HTMLe)[p]]
146 要素についてこういっています。
147
148 - なぜ [[TeX]] のように空行で段落区切りにせず、
149 [CODE(HTML)[<P>]] と書かないといけないのか?
150 -- 一つ、もう遅すぎる。
151 -- 二つ、みんながそれを望むのではない。
152 たとえば Dan はリストの途中なんかで気楽に空行を入れたいのだ。
153 -- 三つ、[[短縮参照]]を使うことにしたら
154 [CODE(SGML)[[[SHORTREF]]]] 有効だから [SAMP[<em/強調/]]
155 なんかを認めないといけないから厄介。
156 (注: これは Dan の勘違い。 [[net]] とかは [CODE(SGML)[[[SHORTTAG]]]] で関係ない。だいたい、
157 (この時 Dan が見ていた [[SGML宣言]]がどれなのかよくわからないけど、)
158 1993年7月と書いてある [[HTML 1.0]] draft の SGML
159 宣言には [CODE(SGML)[SHORTREF [[SGMLREF]]]] と思いっきり書いてある。)
160 - [CODE(HTMLe)[p]] は段落分離子ではなく、段落包含子にしたい。
161 -- 段落の頭に [CODE(HTML)[<p>]] を置くように変えるだけ。
162 -- [CODE(HTML)[</p>]] は [CODE(SGML)[[[OMITTAG]]]]
163 を使えば省略できる。
164 -- そうすれば DTD もより綺麗になるし、もっと意味を成すし。
165
166 [24]
167 [CITE[EMail Msg <9308260107.AA23088@stat1.cc.ukans.edu>]] ([CODE[2007-07-01 04:44:10 +09:00]] 版) <http://ksi.cpsc.ucalgary.ca/archives/WWW-TALK/www-talk-1993q3.messages/774.html>
168 ([[名無しさん]])
169
170 [[#comment]]
171
172
173 *** メモ
174
175 [23]
176 [CITE[Toward Closure on HTML]] ([CODE[1994-04-07 09:56:59 +09:00]] 版) <http://www.w3.org/People/Connolly/drafts/html-direction.html>
177
178 *** ブロック水準要素の包含可能化
179
180 [28] [[XHTML2]] の最初の[[作業原案]]では、 [CODE(HTMLe)@en[[[p]]]]
181 [[要素]]は [CODE(HTMLe)@en[[[blokckquote]]]] や [CODE(HTMLe)@en[[[ul]]]]
182 など他の[[ブロック水準要素]]を含められる[[内容モデル]]に改められていました。
183
184 ;;
185 [CITE@en[- XHTML Text Module]] ([TIME[2002-08-06 00:20:43 +09:00]] 版) <http://www.w3.org/TR/2002/WD-xhtml2-20020805/mod-text.html#edef_text_p>
186
187 [29] [[HTML5]] (旧 [[Web Applications 1.0]]) も当初は [CODE(HTMLe)@en[[[p]]]]
188 [[要素]]は他の[[ブロック水準要素]]を含められる[[内容モデル]]としてきました。
189 しかし、 [[XHTML]] でない [[HTML]] は既存の実装や[[文書]]との互換性のために変更しがたく ([[ブロック水準要素]]の[[開始タグ]]が現れると[[構文解析器]]は
190 [CODE(HTMLe)@en[[[p]]]] [[要素]]の[[終了タグ]]を補うこととなっています。)、
191 [[HTML]] と [[XHTML]] の差異を不用意に拡大するのも好ましくないとの設計方針から、
192 従来通り他の[[ブロック水準要素]]は含められない[[内容モデル]]に戻されました。
193
194 ** 不思議解釈
195
196 [18]
197 '''[CODE(HTMLe)@en[br]]は1改行、[CODE(HTMLe)@en[p]]は2改行?'''
198
199 特定の実装の挙動を根拠に、
200 [CODE(HTMLe)@en[[[br]]]]は[[改行]]1つ分、
201 [CODE(HTMLe)@en[[[p]]]]は[[改行]]2つ分だとする誤った解釈が古今東西広く流布されています。
202
203 [19]
204 '''[CODE(HTMLe)@en[p]]は段落ではない?'''
205
206 [[HTML 4]]で[CODE(HTMLe)@en[[[p]]]][[要素]]の[[子供]]として[CODE(HTMLe)@en[[[ul]]]][[要素]]等を入れられない問題がよく取り上げられていますが、
207 それを[[日本語]]と[[英語]]の文法的・文章的構造の違いに拠るものだとする主張が後を絶ちません。
208 果てには[[日本語]]の[[段落]]と[[英語]]の[[パラグラフ]]はまったく別概念であり、[[段落]]を[CODE(HTMLe)@en[[[p]]]]で表せないという珍説まで発表されています
209 ([[パラグラフ非段落説]])。しかし、
210 [[日本語]]と[[英語]]における違いについて ([[HTML 4]]の規定以外の)
211 根拠を挙げた主張は寡聞にして見たことがありません。
212
213 [[HTML]]が[[フラットでリニアな構造]]なのは他書式との互換性のための歴史的制約に過ぎず
214 [WEAK[([[TimBL]]自身の発言他、軽く調べるだけですぐわかること。)]]、
215 この制約への不満は英語圏からも古くからあるもので、
216 [[HTML 5]]や[[XHTML 2]]では撤廃されています。
217
218 [20]
219 '''[CODE(HTMLe)@en[object]] hack'''
220
221 >>19 で取り上げられている制約を回避するための方法が幾つも検討されており、
222 その候補の一つが[[[CODE(HTMLe)@en[object]] hack]]で、
223 歴史的に何度も[Q[再発見]]されています。
224 詳しくは[[[CODE(HTMLe)@en[object]] hack]]の項を参照してください。
225
226 [[#comment]]
227
228
229 ** 例
230
231 [17] 段落の例 [SRC[RFC 1866 5.5.1.]]
232 [PRE(HTML)[
233 <H1>This Heading Precedes the Paragraph</H1>
234 <P>This is the text of the first paragraph.
235 <P>This is the text of the second paragraph. Although you do not
236 need to start paragraphs on new lines, maintaining this
237 convention facilitates document maintenance.</P>
238 <P>This is the text of a third paragraph.</P>
239 ]PRE]
240
241 [[#comment]]
242
243
244 ** メモ
245
246 [21]
247 [[HTML 4]]: <IW:HTML4:"struct/text.html#h-9.3"> には
248
249 > The [CODE(HTMLe)@en[P]] element represents a paragraph.
250
251 とは書いてあるけど、[[段落]]は [CODE(HTMLe)@en[[[p]]]]
252 で表される/表されなければならないとは書いてない。
253
254 ;;
255 もっとも、こんなことも書いてあるから[[段落]]は
256 [CODE(HTMLe)@en[[[p]]]] しかないと解釈できなくもない。
257
258 > The HTML markup for defining a paragraph is straightforward: the [CODE(HTMLe)@en[P]] element defines a paragraph.
259
260 ;; [[HTML 5]] では [CODE(HTMLe)@en[[[p]]]]
261 以外にも[[段落]]を表す[[要素]]があるし、
262 いわゆる[[段落]]より広い範囲のものを
263 [CODE(HTMLe)@en[[[p]]]] で表すことになっている。
264
265 ([[名無しさん]])
266
267 [22]
268 [[HTML 4]]: <IW:HTML4:"struct/text.html#h-9.3"> には
269
270 > The [CODE(HTMLe)@en[P]] element represents a paragraph.
271
272 とは書いてあるけど、[[段落]]は [CODE(HTMLe)@en[[[p]]]]
273 で表される/表されなければならないとは書いてない。
274
275 ;;
276 もっとも、こんなことも書いてあるから[[段落]]は
277 [CODE(HTMLe)@en[[[p]]]] しかないと解釈できなくもない。
278
279 > The HTML markup for defining a paragraph is straightforward: the [CODE(HTMLe)@en[P]] element defines a paragraph.
280
281 ;; [[HTML 5]] では [CODE(HTMLe)@en[[[p]]]]
282 以外にも[[段落]]を表す[[要素]]があるし、
283 いわゆる[[段落]]より広い範囲のものを
284 [CODE(HTMLe)@en[[[p]]]] で表すことになっている。
285
286 ([[名無しさん]])
287
288
289 [25]
290 [CITE[HTML5 IRC logs: freenode / #whatwg / 20071220]] ([TIME[2007-12-21 19:46:38 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20071220#l-231>
291
292 [26] [CITE[SMIL 3.0 smilText]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-text.html#edef-textP>
293
294 [27] [CITE[p要素の終了タグを省略する際の注意点 (agenda)]] ([TIME[2008-12-12 14:57:13 +09:00]] 版) <http://jintrick.net/agenda/2008/12/p.html>
295
296 * メモ
297
298 [30] [CITE@en[Speech Synthesis Markup Language (SSML) Version 1.1]]
299 ( ([TIME[2010-09-08 00:26:19 +09:00]] 版))
300 <http://www.w3.org/TR/2010/REC-speech-synthesis11-20100907/#edef_paragraph>
301
302 [31] [CITE[IRC logs: freenode / #whatwg / 20100913]]
303 ( ([TIME[2010-09-26 22:31:37 +09:00]] 版))
304 <http://krijnhoetmer.nl/irc-logs/whatwg/20100913>
305
306 [32] [CITE[IRC logs: freenode / #whatwg / 20100930]]
307 ( ([TIME[2010-10-11 01:27:16 +09:00]] 版))
308 <http://krijnhoetmer.nl/irc-logs/whatwg/20100930>
309
310 [33] [CITE['''['''whatwg''']''' Interpretation issue: can <section> be used for "extended paragraphs"?]]
311 ([TIME[2011-06-14 16:39:55 +09:00]] 版)
312 <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-June/032030.html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24