Menu

HTML の上付き文字と下付き文字: sup タグと sub タグ

上付き文字は <sup>、下付き文字は <sub> で書きます。指数、序数、脚注の番号、化学式などに使います。よくある使い方、行の間隔が広がるのを防ぐ方法、Unicode の文字や MathML のほうが適した場面を解説します。

このページのコードはエディタで実行できます - 編集してすぐに結果を確認できます。

HTML で上付き文字を書く方法

上げたいテキストを <sup> で囲みます。ブラウザは小さく、行より上に表示します。対になる <sub> はテキストを小さく、下に表示します。

<sup> と <sub> はインライン要素で、他のインライン要素を入れられるので、2<sup>n+1</sup> や x<sub><i>i</i></sub> も使えます。

よくある使い方

書きたいもの書き方結果
指数10<sup>3</sup>10 の 3 乗
序数2<sup>nd</sup>文字が上がった 2nd
脚注の番号text<sup><a href="#n1">1</a></sup>上に上がった、クリックできる 1
化学式C<sub>6</sub>H<sub>12</sub>O<sub>6</sub>ブドウ糖
添字や底x<sub>1</sub>、log<sub>2</sub>下がった 1 と 2
商標Brand<sup>TM</sup> または Brand™上に上がった TM

位置が意味の一部であるときにタグを使います。m<sup>2</sup> と m2 は別のものです。ラベルやバッジのように、単に小さく見せたいだけのテキストには CSS を使いましょう。

sup で脚注を作る

脚注の番号は、下にある注釈への上付きのリンクです。各注釈に id を付け、リンクでそれを指します。

番号をクリックすると注釈に移動し、「Back」で戻ります。小さなリンクの下線を消すと段落がすっきりし、リンクの色でクリックできることは伝わります。

行の間隔をそろえる

初期状態では、<sup> や <sub> があると、その行が周りの行より高くなることがあり、指数をいくつか含む段落は間隔が不ぞろいに見えます。これらに line-height: 0 を指定すると直ります。

グレーの箱は、2 行目と 4 行目が押し広げられて高くなっています。緑の箱ではすべての行が同じ高さです。このルールを基本のスタイルシートに一度追加すれば、もう気にする必要はありません。

Unicode の文字と MathML

よく使うものには、用意された文字があります: ² (&sup2;)、³ (&sup3;)、¹ (&sup1;)、™ (&trade;)、½ (&frac12;)。タグが不要で行の高さにも影響しませんが、一部の数字や文字にしかありません。

分数、根号、指数の指数など本格的な数式には MathML を使います。現在のブラウザは MathML をそのまま表示できます。

<msup> は底と指数を受け取り、<msub> は下付き文字で同じことをします。文中の指数が 1 つだけなら <sup> のほうが簡単です。

よくある間違い

  • 文字を小さくするために <sup> を使う。 テキストが上がるうえに、上付き文字だと読み手に伝えてしまいます。小さな文字には font-size を使いましょう。
  • 行の間隔がばらつく。 sup, sub { line-height: 0; } を追加しましょう。
  • 完成した文章に x^2 や H2O と書く。 内容が正しく読めるように x<sup>2</sup> と H<sub>2</sub>O を使いましょう。
  • 脚注の番号が小さすぎてタップしにくい。 スマートフォンでは上付きの数字 1 つはとても小さな的です。sup a に少し padding を付けるか、注釈を本文の近くに置きましょう。

よくある質問

HTML で上付き文字を書くには?

上げたいテキストを <sup> で囲みます。x<sup>2</sup> は x の 2 乗、1<sup>st</sup> は序数になります。ブラウザは小さく、ベースラインより上に表示します。

HTML で下付き文字を書くには?

<sub> を使います。水なら H<sub>2</sub>O、添字なら x<sub>1</sub> です。小さく、ベースラインより下に表示されます。

HTML で x の 2 乗はどう書きますか?

x<sup>2</sup> か、用意された文字 x² を使います。この文字は文字参照 &sup2; でも書けます。2 乗や 3 乗なら文字で十分ですが、2<sup>n+1</sup> のような任意の指数には <sup> を使います。

<sup> を使うと行の間隔がばらつくのはなぜですか?

上に上がったテキストのせいで、その行が段落のほかの行より高くなることがあります。sup, sub { line-height: 0; } で直せます。行の高さに影響しなくなります。

<sup> の代わりに CSS を使えますか?

vertical-align: super と小さめの font-size で見た目は同じになりますが、<sup> と <sub> には意味があります。「m2」と「m<sup>2</sup>」は別の値です。上げ下げした位置が内容の一部であるときはタグを使いましょう。

Coddy programming languages illustration

Coddyでコードを学ぼう

始める