[31] code要素 と pre要素 でソースコードを表示しよう
最終更新日:2017年11月05日 (初回投稿日:2012年01月17日)
<code>要素は、ソースコードの断片を示す要素です。
例えば HTML や CSS などのソースコードなどを示すときに使います。
<code>要素はインラインレベルの要素です。
<pre>要素は、整形済みテキストを表示する要素で、改行やスペースを書いたとおりに表示します。
<pre>要素はグルーピングのための要素なので、ブロックレベルです。
ソースコードを表示するとき、改行や字下げをそのまんま表示したいですよね。そんなときに <pre>要素を一緒に使うと最適。
W3Cも <pre>要素と <code>要素をセットで使うことを推奨しています。
使用する要素 | <code> 〜 </code> |
---|
● 2017年11月:記事を「HTML 5.1 - 2nd Edition」を参考に書き換えました。
参考:
The code element - HTML 5.1 - 2nd Edition | W3C Recommendation
The pre element - HTML 5.1 - 2nd Edition | W3C Recommendation
<code>を使ってみよう
<code>要素は 要素名、ファイル名、コンピュータープログラム(ソースコード)など「コンピューターが認識する文字列」をマークアップする時に使います。
「code」はそのまま「コード」の意味です。
このように使います。
<p> <code>code</code>要素は、ソースコードの断片を表します。</p>
プレビューするとこんなかんじ
code
要素は、ソースコードの断片を表します。
<code> 〜 </code>で囲んだ部分は、ブラウザのデフォルトスタイルで等幅フォントになります。
もう1つサンプルです。
ページの読み込みが完了し、DOM の構築が完了した時点で function()
内が実行されます。
HTMLはこちら。
<p> ページが読み込み完了し、DOMの構築が完了した時点で <code>function()</code>内が実行されます。</p>
<pre> の中に <code> を入れて使ってみよう
<pre>要素は、整形済みテキストを用事する要素です。
「スペース」や「改行」をそのままプレビューさせることができます。
「pre」は preformatted text(整形済みテキスト)の略です。
W3C の仕様書では、現代詩(独特のスペースや改行をもつ)の表示や、アスキーアートの表示にも <pre>要素が使えるとしています。
ただし「その整形(改行やスペース)を失ったらどうなるか考慮すべき」とも言及しています。
音声読み上げソフトなどを使っているユーザーのアクセシビリティを考慮すべきということです。
<pre>要素は、字下げ(インデント)や改行をそのまま表示してくれるので、ソースコードの表示に最適です。
ソースコードの表示をするなら <code>要素と一緒に使います。
ソースコードの字下げ(インデント)とは、プログラムの構造を明確にするためのインデントスタイル(Indent style)のこと。ネスト(入れ子)構造をわかりやすくするため、入れ子になっているソースコードほど字下げをする書き方。いわゆる プログラミング作法です。
字下げは「半角スペース」を使うのが一般的です(タブスペースも使われています)
サンプルのプレビューです。
div.entry_body ol li {
list-style: decimal outside;
margin-left: 2em;
}
ソースはこちらです。
<pre><code class="language-css">div.entry_body ol li {
list-style: decimal outside;
margin-left: 2em;
}</code></pre>
改行に<br>を使っていません。字下げは半角スペース4個分ですが、そのままプレビューされていますね。
また、サンプルでは <code>要素に class名で「language-css」と入れています。
W3C の仕様で <code>要素にプレフィックス " language- " を付けた class を加えることで「構文をハイライトするスクリプト」が正しく機能するようにできるとしています。
「シンタックスハイライト」用のスクリプト内で、 language-プレフィックスが使えるということ。
私は「Prism」を使っていますが、これは <code>要素に「class="language-◯◯"」と指定することで、言語(html, css, js など)の表示を切り替えることができます。
pre要素は samp要素 や kbd要素とも組み合わせても
<pre>要素を <samp>要素と一緒に使えば、コンピューターの出力のブロックを表すことができます。
また、<kbd>要素の中に <pre>要素を入れれば、ユーザーが入力するべきテキストであることを示すことができます。
これらについては、[32] その他のプログラム関連要素 kbd と samp と var で触れます。
次回予告
次回は、<pre>要素と同じような表示をする、CSSの「white-space : pre」について紹介します。
現代詩などを表示するときは、この CSSでスタイルを整えるほうが良いと思います。
- 関連記事
-
- [36] コンテンツをまとめる figure と、そのキャプションの figcaption
- [35] 内容の区切りを示す hr 要素
- [34] 書字方向を指定する bdo要素と 書字方向を隔離する bdi要素
- [33-2] 単語の途中でも改行させるCSS「word-wrap: break-word」
- [33-1] 改行可能位置を示す wbr要素 を使ってみよう
- [32] その他のプログラム関連を示す samp、kbd、var、data要素
- [31-2] pre 要素と同じ表示をするCSS「white-space : pre」
- [31] code要素 と pre要素 でソースコードを表示しよう
- [30] 定義語を示す dfn要素 を abbr要素や dt要素と一緒に使おう
- [29] abbr要素で略語を示そう
- [28] blockquote要素で「引用されたブロック」を示そう
- [27] q要素で引用文を示そう
- (ちょっとメモ) u要素と s要素は復活(廃止ではありません)
- [26] 参照先のタイトルを表す cite要素を使おう
- [25] 新しい要素 time で正確な日時を記述しよう
初心者にも使いやすい(と思う)レンタルサーバー
「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、
スターサーバーや ロリポップ!
です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。
ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー
は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。
スポンサーリンク