| この記事の要点 |
|
<sub> とは
<sub> (subscript) は、下付き文字として文字を表示するインライン要素です。化学式、数学の添字、脚注、変数のインデックスなどに使われます。
<!-- 水分子 -->
<p>水の化学式は H<sub>2</sub>O である。</p>
<!-- 二酸化炭素 -->
<p>CO<sub>2</sub> は温室効果ガスの代表である。</p>
<!-- 数学の添字 -->
<p>数列 a<sub>1</sub>, a<sub>2</sub>, a<sub>3</sub>, ... a<sub>n</sub></p>
<!-- 脚注番号 -->
<p>詳細は別表<sub>1</sub>を参照。</p>
<sup> との対
<sub> と <sup> (superscript: 上付き) は一対の要素です。
| 要素 | 用途 | 例 |
|---|---|---|
<sub> | 下付き文字 | H2O, log10(x) |
<sup> | 上付き文字 | x2, 109, ™, ® |
主な使用例
化学式
<!-- 水 -->
H<sub>2</sub>O
<!-- 硫酸 -->
H<sub>2</sub>SO<sub>4</sub>
<!-- グルコース -->
C<sub>6</sub>H<sub>12</sub>O<sub>6</sub>
<!-- イオン: 上付きと組合せ -->
SO<sub>4</sub><sup>2-</sup>
<!-- 同位体 (上下混在: 推奨は MathML) -->
<sup>14</sup>C
数式・統計
<!-- 数列 -->
S<sub>n</sub> = a<sub>1</sub> + a<sub>2</sub> + ... + a<sub>n</sub>
<!-- 対数 -->
log<sub>2</sub>(x) = ln(x) / ln(2)
<!-- 統計 -->
N<sub>0</sub> = 初期値, N<sub>t</sub> = t 時点の値
<!-- 偏微分 -->
∂f / ∂x<sub>i</sub>
変数インデックス(プログラミング解説など)
<p>
配列 arr のインデックス i は 0 から N-1 の範囲を取り、
arr<sub>i</sub> が i 番目の要素を表す。
</p>
デフォルトスタイルと CSS 代替
多くのブラウザの初期 CSS は次のように定義されています:
/* ブラウザの user-agent stylesheet */
sub {
vertical-align: sub;
font-size: smaller;
line-height: normal;
}
sup {
vertical-align: super;
font-size: smaller;
line-height: normal;
}
CSS だけで似た表示を作る
/* 意味は持たない、見た目だけ下付き */
.subscript-like {
vertical-align: sub;
font-size: 0.75em;
line-height: 0; /* 行間が広がるのを防ぐ */
}
ただし意味的なマークアップ (sub) と CSS による見た目だけの表現は別物です。化学式・数式のようにセマンティクスが重要なら必ず <sub> を使ってください。
カスタマイズ: 行間を保つ
そのまま使うと行の高さが広がってしまうことがあります。次の CSS で抑制できます:
sub, sup {
font-size: 0.75em;
line-height: 0; /* 行高を増やさない */
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
MathML での代替(複雑な数式)
3 行以上の数式や、複数の上下付きが入り組む場合は <sub> では限界があります。MathML を使うのが本来の解です:
<!-- x の n 乗 - MathML -->
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mi>x</mi>
<mn>n</mn>
</msup>
</math>
<!-- x_i^2 - 上下付き混在 -->
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msubsup>
<mi>x</mi>
<mn>i</mn>
<mn>2</mn>
</msubsup>
</math>
KaTeX / MathJax を使う場合
<!-- KaTeX -->
<link rel="stylesheet" href="katex.min.css">
<script defer src="katex.min.js"></script>
<script defer src="auto-render.min.js"
onload="renderMathInElement(document.body);"></script>
<p>水の分子式は $H_2O$ である。</p>
<p>エネルギーは $E = mc^2$ である。</p>
アクセシビリティ
スクリーンリーダーは <sub> を普通の文字として読み上げることがほとんどです。「H 2 O」のように読まれます。意味を保証したい場合は aria-label で補完します:
<span aria-label="水">H<sub>2</sub>O</span>
よくあるミス
- 上下逆 -
<sup>と<sub>を間違える - 大量の数式を全て sub/sup で組む → MathML / KaTeX に切替
- 装飾目的で使う → CSS で済むなら CSS の方が適切
- SEO 目的でキーワードを sub に → 効果なし、可読性悪化
FAQ
Q: sub と sup は同時に使える?
A: 一つのテキスト要素に対し同時には付けられません(HTML の仕様上どちらか)。同時に表示したい場合は MathML を使うか、CSS で重ねます。
Q: 行間が広がる問題の解決法は?
A: 上述の line-height: 0 + position: relative 方式が最も簡単。
Q: sub/sup は SEO に影響する?
A: 検索キーワードへの直接効果はありません。意味的に正しいマークアップとして使うべきです。
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09