HTMLのpre
タグについて書いています。
pre
(preformatted text)タグは、要素内に記述されたテキストの空白文字(スペース、タブ、改行)をそのまま保持して表示するために使用されます。
これは、詩、ソースコード、ASCIIアートなど、テキストのフォーマットが重要であるコンテンツを表示する際に非常に役立ちます。
preタグの基本的な使い方
pre
タグで囲まれたテキストは、HTMLソースコードに記述された通りの空白と改行を維持してブラウザに表示されます。
通常、等幅フォント(monospace font)でレンダリングされます。
<pre>
これは
改行を含む
テキストです。
インデントも
そのまま表示されます。
</pre>
上記のHTMLは、ブラウザで以下のように表示されます。
preタグの意味合い
pre
タグは、囲まれたテキストが整形済みであることを示します。
これは、テキストのレイアウトが重要であり、ブラウザが通常のテキストのように空白を圧縮したり、改行を無視したりしないことを意味します。
preタグにスタイルを適用する
pre
タグのデフォルトのスタイル(等幅フォント、空白と改行の保持)は、CSSで上書きしたり、さらに他のスタイルを追加したりすることができます。
pre {
font-family: "Courier New", Courier, monospace; /* より明示的に等幅フォントを指定 */
background-color: #f4f4f4; /* 薄い背景色 */
padding: 10px; /* 内側の余白 */
border: 1px solid #ccc; /* 枠線 */
height: 200px; /* コンテンツの縦幅を指定 */
overflow: auto; /* 長いコンテンツの場合にスクロールバーを表示 */
white-space: pre-wrap; /* 長い行を折り返す */
}
上記のCSSでは、pre
タグに対して背景色、枠線、パディングなどを設定しています。
そして、縦幅を指定しoverflow: auto;
によってコンテンツがはみ出す場合にスクロールバーを表示するようにしています。
また、white-space: pre-wrap;
を使用すると、pre
タグの空白と改行を保持しつつ、要素の幅に合わせて長い行を折り返すことができます。(デフォルトの white-space: pre
では折り返されません)
下記のようにテキストを用意して、ブラウザで確認しました。
<pre>
テスト
テストテスト
テストテストテスト
テストテストテストテスト
テストテストテストテストテスト
テストテストテストテストテストテスト
テストテストテストテストテストテストテスト
テストテストテストテストテストテストテストテスト
テストテストテストテストテストテストテストテストテスト
テストテストテストテストテストテストテストテストテストテスト
テストテストテストテストテストテストテストテストテストテストテスト
テストテストテストテストテストテストテストテストテストテストテストテスト
</pre>
ブラウザに表示すると、スタイルが適用されていることが確認できました。
preタグの使用例
pre
タグは、以下のようなコンテンツを表示する際に役立ちます。
- ソースコード: プログラミング言語のコードをそのままのインデントと改行で表示する。
- ASCIIアート: 文字で描かれた図形やイラストを表示する。
- ログファイル: サーバーやアプリケーションのログをそのままの形式で表示する。
- 詩: 行ごとの改行や空白が重要な詩のテキストを表示する。
- 設定ファイル: 構造が重要な設定ファイルの内容を表示する。
ソースコードの例
<pre>
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet('World');
</pre>
ブラウザで表示すると、下記のようになります。
ASCIIアートの例
<pre>
/\_/\
( o.o )
> ^ <
</pre>
ブラウザで表示すると、下記のようになります。
preタグとcodeタグの組み合わせ
ソースコードを表示する際には、pre
タグとcode
タグを組み合わせて使用することが推奨されます。
<pre>
タグ: テキストの整形済み形式(空白と改行の保持)を示します。<code>
タグ: 囲まれたテキストがコンピューターコードであることを示します。
pre
タグの中にcode
タグを配置することで、コードブロックであることを意味的に示し、pre
タグによってコードのレイアウトが保持されます。
<pre><code>
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet('World');
</code></pre>
<pre><code>
body {
font-family: sans-serif;
margin: 0;
}
</code></pre>
preタグを使用する際の注意点
- HTMLエンティティ:
<
や>
などのHTMLで特別な意味を持つ文字をコード内で使用する場合は、HTMLエンティティ(<
,>
など)に置換する必要があります。pre
タグ内でも同様です。 - 長い行の扱い: デフォルトでは、
<pre>
タグ内の長い行は折り返されずに要素の幅を超えて表示されることがあります。CSSのoverflow: auto;
やwhite-space: pre-wrap;
を使用して、水平スクロールバーを表示したり、長い行を折り返したりする対策を検討してください。 - スタイルの継承:
pre
タグ内のテキストは、周囲の要素のスタイルを一部継承する場合があります。必要に応じて、pre
タグに明示的にスタイルを設定してください。
まとめ
pre
タグは、HTMLでテキストの整形済み形式を保持して表示するための重要な要素です。
ソースコード、ASCIIアート、ログファイルなど、レイアウトが重要なコンテンツを正確に表示するのに役立ちます。
code
タグと組み合わせて使用することで、コードブロックを意味的にマークアップし、シンタックスハイライトなどの処理を適用することも可能です。
pre
タグの特性を理解し、適切な場面で活用することで、Webページの表現力を高めることができます。
コメント