p要素
要素名 | バージョン | 開始タグ | 終了タグ | 分類/親 | 中身 |
---|---|---|---|---|---|
p | 2.0, 2.x, 3.2, 4.0, X1.0, X1.1 | 必須 | 省略可 | %block; | %inline; |
属性名 | バージョン | 属性値 | 既定値 | 備考 |
---|---|---|---|---|
align | 3.2, (4.0), (X1.0) | (left|center|right|justify) | #IMPLIED | default is left for ltr paragraphs, right for rtl |
共通属性 …… %coreattrs;, %i18n;, %events;
pの解説
P は Paragraph の頭文字で、文字通り段落を表す要素です。<p> と </p> で囲んだ部分が段落となります。
align属性で右寄せやセンタリングが可能ですが、HTML4 ではこの属性は非推奨です。スタイルシートを使いましょう。ちなみに、既定値は書字方向が ltr (左から右) の場合には left、rtl では right となります。
要素の中身がインライン要素となっている点に注意して下さい。p 自身はブロック要素ですが、中身にブロック要素を含むことはできません。次の例は昔よく見かけた間違いです。
<p align=right>
<hr>
</p>
作者の意図は hrを右寄せすることにあるのでしょうが、hr はブロック要素であるため、 p の中に入れることはできません。この場合、<hr> の直前に </p> が補われて以下のように解釈されます。
<p align=right>
</p>
<hr>
</p>
当然、右寄せにはなりません。中身が空の p要素は無視される (多くのブラウザは手抜き実装で一行空きにしてしまいますが、本来は無視されるべきものです) だけですが、hrの後ろにある </p> を解釈できません。よって不正となります。このようなマーク付けをしてはいけません。
同様に、table や pre, blockquote なども p の中に入れることができません。p で table をセンタリングできてしまうブラウザも存在するようですが、それは正しい位置に </p> を補うことができていないということです。つまりブラウザのバグです。
- 「p要素」にコメントを書く