制作者(webmaster)
野嵜健秀(Takehide Nozaki)
改訂
2003-09-20

p要素

共通解説

パラグラフ(段落)はp要素でマーク附けします。段落の前後に開始タグ<p>と終了タグ</p>をつけてマーク附けして下さい。

<p>かつて日本語の表記は正漢字正かなづかひが正式なものであつた。それが「占領漢字」「現代かなづかい」にとつて代はられたのは、正字正かなが不合理であつたからではなかつた。</p>
<p>國語表記の改變は、國民の納得づくで行はれたものではない事に注意されたい。敗戰直後のどさくさに紛れて、國字改革は強行されたのである。</p>

汎用属性であるclass、id、title、style、lang、dir(、xml:lang)がいつでも記述できます。

各ヴァージョン毎の解説

HTML 4.01

pの中身は常にインライン要素である筈です。逆に言ふと、ブロック要素が出現すれば、その直前でpはお終ひとなります。

即ち、ブロック要素が後続する時、pの終了タグは省略が可能となります。後続の要素によつてpの終了が明かである場合にのみ、pの終了タグを省略する事が許される、と云ふ事です。

<p><hr></p>と云ふ記述をしても、<hr>の前に</p>が補はれます(それが仕樣上、正しいブラウザの擧動)。うしろの</p>は無意味な記述と云ふ事になります。要注意。

XHTML 1.0

常に要素の開始・終了を明示しなければなりません。開始タグ・終了タグとも、記述の省略が許されません。

HTML 4.01/XHTML 1.0 Transitional

align属性を記述できます。align属性では行揃へを指定できます。属性値としてはleft/right/center/justifyを指定ます。ただし、justifyはXHTMLでは未定義ですので、書けません。

全てCSSで置換へ可能です。また、CSSの方が細かい指定ができます。

参考

誤解が多いp要素

br要素が「改行」で、p要素が「一行空けて改行」「改段」、などと説明してゐる「ほーむぺーじ入門サイト」や「ほーむぺーじの作り方」みたいな本があります。大嘘です。

HTML 2.0以降でpは開始タグ・終了タグが存在するブロック要素です。「一行開けて改行」を意味する空要素ではありません。文末にpをつけるのはHTML規格策定以前の慣習に過ぎないので、今更やつてはいけません。

pで改行を実現するのは、良く言つて「裏技」でしかありません。掲示板などのCGIを作つてゐる人に、この手の「裏技」を好む××プログラマが意外と多いのですが、嘆かはしい事です。まともなHTMLも書けない、あるいはHTMLの文法違反を平気でやらかす人間がCGIプログラマとして通用すると云ふのは、ウェブの世界の七不思議の一つです。

p要素は「1行空けて改行」だ、と言つてのけたその口で、<p align="center">の解説をはじめる「ほーむぺーじ入門」の制作者もやたらたくさん存在します。何を考へてゐるのでせうか。何も考へてゐないのでせうね。

連続するp要素は無視される

HTML 4.01 Specificationに、以下の記述があります。

We discourage authors from using empty P elements. User agents should ignore empty P elements.

野嵜試訳「我々は制作者が空のp要素を使用するのを思ひとどめさせる。ユーザエージェントは空のp要素を無視すべし」。

Internet Explorer等が連続する<p>を無視する理由は、上記のW3Cの仕樣書の記述に従つてゐるためです。

「形式段落」「意味段落」

小学校の国語の時間に習つたと思ひますが、字下げされた一纏まりの文章群を形式段落、意味的に一聯のものであると思はれる複数の形式段落を纏めて意味段落、と称する事があります。

意味段落は、前後に一行開けがある、とする説もあります。けれども、実際には、形式段落同士が意味的に繋がつてゐないからその前後で別々の意味段落になつてゐると判断する、と云ふ事がほとんどだと思ひます。

この形式段落がp要素に相当する、とは、ほぼ常識的に知られてゐます。が、サイト制作者の中には、意味段落も何らかの方法で明示したい、と主張する人がゐます。これについて、私見ですが、意味段落は一般の印刷物等でも明示されない事が多いのだから、ウェブ文書でも明示されなくて良い、と思ひます。

もちろん、明示したい人は、意味段落をdiv要素としてマーク附けし、スタイルを指定する事で、そこに意味段落がある事を示しても良いでせう。しかしそれは、単にstructure to documentsを追加したに過ぎない、と看做すべきです。そして、authors may use these elements in conjunction with style sheets, the lang attribute, etc., to tailor HTML to their own needs and tastesと書かれてゐる通り、追加された構造にスタイルを指定したり味附けをしたりしてゐるだけである、と考へるべきです。「意味段落を明示した」と言ふよりは、「追加された構造にスタイルを指定する事で意味段落の存在を暗示した」と言ふ方がより正確でせう。

既に述べた通り、意味段落は、常に暗示されてゐるもの、読者にとつて文章の意味からその存在を推測する事しかできないもの、でしかありません。