/[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.16 - (hide annotations) (download)
Sun Jul 5 08:22:43 2009 UTC (15 years, 4 months ago) by wakaba
Branch: MAIN
CVS Tags: before-graph-20090923, suika-20100509
Changes since 1.15: +14 -2 lines
File MIME type: text/plain
updated by (anon)

1 wakaba 1.13
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 wakaba 1.14
140 wakaba 1.15
141 wakaba 1.13 *** お尻 <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 wakaba 1.16 *** ブロック水準要素の包含可能化
179 wakaba 1.13
180 wakaba 1.16 [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 wakaba 1.13
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 wakaba 1.14 [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 wakaba 1.15
294     [27] [CITE[p要素の終了タグを省略する際の注意点 (agenda)]] ([TIME[2008-12-12 14:57:13 +09:00]] 版) <http://jintrick.net/agenda/2008/12/p.html>
295 wakaba 1.13
296     * メモ

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24