整形済みテキスト・<pre>要素についての解説です。
<pre>要素は整形済みテキストです。
整形済みテキストとは、予め改行や空白などで整形してあるテキストの事です。
一般に、視覚系ユーザエージェントでは連続する空白(半角空白, 水平タブ及び改行コード)は一纏めにして表示し、文字が端まで達したら折り返すようにします。
しかしながら、整形済みテキストでそのような扱いをされるのは好ましくありません。
視覚系のユーザエージェントでは、<pre>要素に対して以下のような処理をする事が出来ます。
但し、あくまでも上記のように処理して構わないと言う事で、実際上記のような処理を行わない視覚系ユーザエージェントもあります。
主に以下のようなテキストが整形済みテキストとされます。
尚、当然ながら、非視覚系ユーザエージェント(音声・点字出力を行うユーザエージェントやHTML文書をデータ処理に用いるユーザエージェント)では、<pre>要素内の余計な空白文字を特別に考慮する必要はありません。
<pre>要素は、以下の文書型で利用出来ます。
<pre>要素はテキストモジュールに属します。
<pre>要素はブロックレヴェル要素です。
<pre>要素の内容は、インライン要素に限られます。
但し、以下のインライン要素は入れられません。
これらの要素は整形済みテキストを崩す恐れがあるからです。
<pre>要素には、以下の属性が定められております。
以下に挙げる<pre>要素の属性はHTML 3.2, トランジッショナル文書型及びフレームセット文書型でのみ利用出来る属性で、排除勧告が出されております。
稀に見た目を整えるためだけに必然性無く<pre>要素としてマークアップされているものがありますが、このようなマークアップは環境によっては却って読み難かったりおかしな表示になってしまうでしょう。
<pre>要素は、上記の通り整形済みテキストとする必然性があるコンピュータ言語のコードや定型詩など限られた場合にのみにすべきです。
水平タブの移動幅は変えられる場合が多く、整形済みテキスト内で使うと字下げ幅が崩れる恐れがあります。
コンピュータ言語のコードでは「<」「>」「&」などがしばしば使われますが、これらの文字は<pre>要素内と言えども必ず文字参照にして下さい。
<pre>要素でコンピュータ言語のコードを記述する場合、当然<code>要素と併用されますが、
です。
従って、<pre>要素の内容が全部コンピュータ言語のコードだからと言って、<pre>要素を<code>要素の内容にしてはいけません。
<pre class="perl"><code>$y=1;</code><code>for ($x=10;$x>0;--$x) {</code><code>$y*=$x;</code><code>}</code><pre>