/[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.1 - (hide annotations) (download)
Wed Nov 12 15:57:07 2008 UTC (16 years ago) by wakaba
Branch: MAIN
File MIME type: text/plain
converted from SuikaWiki3 <http://suika.fam.cx/gate/cvs/suikawiki/wikidata/page/70.txt>

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24