ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
code 要素とは
<code> 要素は HTML でプログラムコードの断片を表すインライン要素です。「コードである」というセマンティクスを与えるだけで、見た目だけが目的なら <span> でも済みますが、意味付け (semantics) をしておくとスクリーンリーダーや検索エンジン、シンタックスハイライト ライブラリが正しく解釈してくれます。
基本構文
配列の長さは arr.length で取得できます。
関数 strlen() は文字数を返します。
HTML タグ <p> は段落を表します。
ブラウザのデフォルトスタイルで等幅フォントのインライン表示になります。
複数行のコード — pre と組み合わせる
code 要素単体はインラインで空白や改行が圧縮されるため、複数行のコードを書くときは <pre> でラップするのが定番です。
<pre><code class="language-js">function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("Alice"));
</code></pre>
class="language-xxx" は highlight.js や Prism.js といったシンタックスハイライト ライブラリの慣習で、HTML5 仕様でも推奨の書き方です。
HTML 特殊文字のエスケープ
code 要素の中でも HTML パーサーは動作するため、< > & はそのまま書くとタグや実体として解釈されてしまいます。HTML エンティティに変換が必要です。
| 文字 | エンティティ |
|---|---|
< | < |
> | > |
& | & |
" | " |
' | ' |
CSS でのスタイリング
code {
font-family: "JetBrains Mono", Consolas, Menlo, monospace;
font-size: 0.95em;
padding: 0.15em 0.4em;
background: #f4f4f5;
color: #d63384;
border-radius: 4px;
}
pre code {
/* pre 内では背景や余白をリセット */
background: transparent;
padding: 0;
color: inherit;
font-size: 1em;
}
pre {
background: #1e293b;
color: #e2e8f0;
padding: 1em;
border-radius: 6px;
overflow-x: auto;
line-height: 1.5;
}
似た要素との使い分け
| 要素 | 意味 | 例 |
|---|---|---|
<code> | プログラムコード | arr.length |
<kbd> | ユーザーのキー入力 | Ctrl + C |
<samp> | プログラムの出力 | Permission denied |
<var> | 変数名 / 数式の変数 | x |
<pre> | 改行・空白を保持する整形済みテキスト | 複数行コード |
組み合わせ例
<p>関数 <code>greet(<var>name</var>)</code> を呼び出すと <samp>Hello, Alice!</samp> と表示されます。</p>
<p>キャンセルするには <kbd>Ctrl</kbd>+<kbd>C</kbd> を押します。</p>
アクセシビリティ
- code 要素はセマンティクスを伝えるため、見た目だけ目的でも
spanより優れる - スクリーンリーダーによっては「コード」と読み上げてくれる
- 長いコード片は aria-label や
figure+figcaptionでラベル付けすると親切 - 横スクロールが必要なコードブロックは
overflow-x: auto+ キーボードフォーカス可能にする
Markdown との関係
Markdown のバッククォート記法 `code` は HTML に変換されるときそのまま <code> 要素になります。フェンスドコードブロック ```js ... ``` は <pre><code class="language-js"> に展開されるのが一般的です。
インライン: `arr.length`
```javascript
function greet(name) {
return `Hello, ${name}!`;
}
```
SEO とセマンティクス
- 検索エンジンは
<code>要素のテキストをコード片として認識する - 技術記事では関数名・API 名を
<code>で囲むと検索ヒット率が向上しやすい - 記事内のキーワード密度を意図的に増やしたい関数名・クラス名は
<code>で明示 - schema.org の
SoftwareSourceCodeと組み合わせると構造化データとしても扱える
よくある実装ミス
| ミス | 対処 |
|---|---|
< をそのまま書いて HTML 崩壊 | < にエスケープ |
<pre> 無しで改行が消える | <pre><code> の入れ子に |
| 長すぎる行で横はみ出し | 親の pre に overflow-x: auto |
| 等幅にならない | CSS でフォント未指定。UA スタイル依存は危険 |
| コピーしづらい | クリップボードコピーボタンを JS で追加 |
ハイライト ライブラリの主な選択肢
| ライブラリ | 特徴 |
|---|---|
| highlight.js | 自動言語検出。シンプルで導入が早い |
| Prism.js | 軽量・プラグイン豊富。React/Vue との相性が良い |
| Shiki | VS Code と同じテーマ。サーバー側で事前ハイライト推奨 |
| CodeMirror / Monaco | 編集可能なエディタ向け (ハイライト単体目的ではオーバースペック) |
FAQ
Q: <code> と <tt> の違い
A: <tt> は HTML5 で廃止。等幅表示は CSS の font-family: monospace で行い、意味は <code> など適切な要素を使います。
Q: 改行を保持したい
A: <code> 単体ではダメ。<pre><code>...</code></pre> でラップするか、CSS で white-space: pre を当てます。
Q: シンタックスハイライト ライブラリは何を使うべき?
A: SSR 環境では highlight.js / Prism.js / Shiki が定番。Shiki は VS Code 同等のテーマ品質。
Q: コピーボタンを付けたい
A: navigator.clipboard.writeText() で実装できます。pre 要素内に絶対配置でボタンを置くのが定番 UI。
Q: 言語クラスは必須?
A: 必須ではありませんが、シンタックスハイライトとスクリーンリーダーへのヒントになります。class="language-XXX" は HTML5 仕様で推奨。
関連
- pre 要素 — 整形済みテキストブロック
- kbd 要素 — キーボード入力
- samp 要素 — プログラムの出力
- var 要素 — 変数名・数式の変数
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?