last modified 8th/Oct. 2000
通常のブロック要素内容文字列では、改行と空白、タブ文字は連続する分を一つにまとめて半角スペース一つ分に置換されます。
PRE 要素では、テキスト・ソースで記述した通りに改行、空白が反映されます。また、行の高さと文字の幅が固定ピッチで表示されます。
例えばプログラムコードの断片や、詩歌のような場合に利用します。
ブラウザの自動改行処理が全く効かなくなるので、ウィンドウ、表示枠の大きさによっては横スクロールバーが出てしまいます。
<h1>落葉</h1> <pre> 秋の日の ヴィオロンの ためいきの 身にしみて したぶるに うら悲し。 鐘のおとに 胸ふたぎ 色かえて 涙ぐむ 過ぎし日の おもひでや。 げにわれは うらぶれて ここかしこ さだめなく とび散らう 落ち葉かな。 </pre> <p><cite>ヴェルレエヌ-「詩集」</cite></p>
<!-- excludes markup for images and changes in font size --> <!ENTITY % pre.exclusion "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT"> <!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text --> <!ATTLIST PRE %attrs; -- %coreattrs, %i18n, %events -- width NUMBER #IMPLIED >
PRE 要素はブロック要素です。 BODY 要素の直接の子要素に成り得ますが、 Headings 要素や P 要素などの子要素には成り得ません。
この子要素にはインライン要素しか成り得ませんが、中でも画像要素を始めとする置換要素、フォントのサイズを変えることを目的とした要素などは子要素に成り得ません。これらの制限は、 PRE 要素内が固定ピッチ、固定行高のフォントで表示される事を確保する為の措置です。
PRE 要素の属性は一般的な属性 (%attrs;
) の他に、 width 属性を持ち得ます。
しかし、 PRE 要素の横幅を指示する width 属性は廃止予定の非推奨属性です。しかもあまりサポートされていません。もし必要があれば、事実上スタイルシートで実現しなければ成りません。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <title>CSS の width プロパティの例</title> <meta http-equiv="content-style-type" content="text/css"> <style type="text/css"> <!-- pre { width: 80% } --> </style> </head> <body> <pre> ここは PRE 要素の内容です。 CSS によって、横幅が親要素の内容の 80% に制限されています。 </pre> </body> </html>