ピクセル(px)をremに変換

最終確認日:

24 pxは、既定の基準のフォントサイズ16 pxで1.5 remになり、14 pxは0.875 remになります。計算は、ピクセルの寸法をページの基準のフォントサイズで割るだけです。デザインの寸法を最初の欄に入力し、ページが別の基準を使っている場合は「基準のfont-size」の欄に入力してください。

px
rem

remとは? ピクセルの寸法をremで書くのはなぜ?

デザインファイルでは、見出しは28ピクセル、セクションの間隔は32ピクセルのように、寸法がピクセルで決まっています。CSSのピクセルは固定の単位で、規格では1インチの96分の1です[1]。そのためpxをインチに変換するツールも、初期値の解像度では1インチを96ピクセルとして数えます。remは相対的な単位で、1 remはページのルート要素であるhtml要素の計算済みのフォントサイズと同じです[1]。

emの値は入れ子の要素の中で段階ごとに掛け合わされていきますが、remは常にルート要素を基準にするので、ページ全体で同じ大きさです。emの換算にはemをpxに変換するツールがあります。ピクセルの寸法をremにするには、html要素のフォントサイズがわかれば十分です。remにした寸法は読み手の設定に合わせて変わり、24ピクセルの見出しは既定の設定では24ピクセルのまま、Chromeで「大」、Edgeで「フォント サイズ: 大」を選んだ読み手には30ピクセルになります。

.heroのルールでフォントサイズ60px、見出しのルールで220pxを指定したCSSコード
この写真では、.heroのルールの60pxと、.headingと.sub-headingをまとめたルールの220pxの2つのフォントサイズが、どちらもピクセルで書かれています。基準16ピクセルでは、前者は3.75rem、後者は13.75remになり、どちらも読み手の設定に合わせて大きくなります。写真:Ferenc Almasi(Unsplash)

24 pxは何rem?

既定の基準16ピクセルでは、24ピクセルは1.5 remです。計算は「rem = ピクセル ÷ 基準のフォントサイズ」の割り算1回だけです。16ピクセルごとに1 remで、1ピクセルは0.0625 remなので、8ピクセルは0.5 rem、32ピクセルは2 remです。

スタイルシートが別の基準を使っているなら、その基準で割ります。62.5%のテクニックでは基準が10ピクセルになり、24ピクセルは2.4 remです。基準20ピクセルなら、24ピクセルは1.2 remです。3つ目の欄に基準を入力すれば、このツールはスタイルシートにそのまま書ける値を出します。

16で割り切れない寸法もあるため、結果は小数点以下4桁まで表示します。たとえば13ピクセルは0.8125 remで、CSSはこの数値をそのまま受け付けます。「結果をコピー」ボタンは数値だけをコピーするので、スタイルシートに貼り付けてremを付け足せば完了です。

ピクセルをremに換算する計算式は?

計算式はrem = px ÷ font-sizeで、font-sizeはhtml要素のフォントサイズです。たとえばデザインの28ピクセルの見出しは、基準16ピクセルで28 ÷ 16 = 1.75なので、スタイルシートにはfont-size: 1.75remと書きます。

基準16ピクセルでは、4で割り切れる寸法は小数点以下2桁までになり、12ピクセルは0.75 remです。それ以外の偶数は3桁で、14ピクセルは0.875 rem、奇数は4桁で、15ピクセルは0.9375 remです。13.5ピクセルのような寸法は5桁目が出るため、結果は4桁に丸められて0.8438 remになります。

逆向きの計算にはremをpxに変換するツールを使います。親要素のフォントサイズを基準にした値が必要ならpxをemに変換するツールで換算し、ファイルの寸法がポイント(pt)なら、先にptをpxに変換するツールでピクセルにしてください。

font-size:13pxやmargin:16px 0 20pxのように、寸法がピクセルで書かれた縮小済みのCSSコード
これは縮小されたスタイルシートで、見えている寸法はすべてピクセルで書かれています。基準16ピクセルでは、font-size:13pxは0.8125remに、margin:16px 0 20pxは1rem 0 1.25remになります。写真:Rahul Mishra(Unsplash)

3つの基準でピクセルは何rem?

表には1〜400ピクセルの寸法があります。1列目は既定の基準16ピクセル、2列目は基準を10ピクセルにする62.5%のテクニック、3列目はChromeで「大」を選んだ読み手の基準20ピクセルです。強調した行は16ピクセルと24ピクセルです。
ピクセルの寸法基準16 pxでのrem基準10 pxでのrem基準20 pxでのrem
1 px0.0625 rem0.1 rem0.05 rem
2 px0.125 rem0.2 rem0.1 rem
4 px0.25 rem0.4 rem0.2 rem
6 px0.375 rem0.6 rem0.3 rem
8 px0.5 rem0.8 rem0.4 rem
10 px0.625 rem1 rem0.5 rem
11 px0.6875 rem1.1 rem0.55 rem
12 px0.75 rem1.2 rem0.6 rem
13 px0.8125 rem1.3 rem0.65 rem
14 px0.875 rem1.4 rem0.7 rem
15 px0.9375 rem1.5 rem0.75 rem
16 px1 rem1.6 rem0.8 rem
17 px1.0625 rem1.7 rem0.85 rem
18 px1.125 rem1.8 rem0.9 rem
20 px1.25 rem2 rem1 rem
22 px1.375 rem2.2 rem1.1 rem
24 px1.5 rem2.4 rem1.2 rem
25 px1.5625 rem2.5 rem1.25 rem
26 px1.625 rem2.6 rem1.3 rem
28 px1.75 rem2.8 rem1.4 rem
30 px1.875 rem3 rem1.5 rem
32 px2 rem3.2 rem1.6 rem
36 px2.25 rem3.6 rem1.8 rem
40 px2.5 rem4 rem2 rem
44 px2.75 rem4.4 rem2.2 rem
48 px3 rem4.8 rem2.4 rem
50 px3.125 rem5 rem2.5 rem
56 px3.5 rem5.6 rem2.8 rem
60 px3.75 rem6 rem3 rem
64 px4 rem6.4 rem3.2 rem
72 px4.5 rem7.2 rem3.6 rem
80 px5 rem8 rem4 rem
96 px6 rem9.6 rem4.8 rem
100 px6.25 rem10 rem5 rem
120 px7.5 rem12 rem6 rem
128 px8 rem12.8 rem6.4 rem
160 px10 rem16 rem8 rem
192 px12 rem19.2 rem9.6 rem
200 px12.5 rem20 rem10 rem
256 px16 rem25.6 rem12.8 rem
320 px20 rem32 rem16 rem
400 px25 rem40 rem20 rem
どのセルも、このツールがピクセルの寸法を基準で割った値で、結果の欄と同じく小数点以下4桁まで表示しています。

スタイルシートの行はremでどう書く?

各行はデザインの寸法をそのままピクセルで書いた行で、その隣に同じ値を、基準16ピクセルと、62.5%のテクニックの基準10ピクセルでのremで示しています。値の列はCSSのコードなので、小数点はピリオドです。
ピクセルの行基準16 pxでのrem基準10 pxでのrem(62.5%)
font-size: 16px1rem1.6rem
font-size: 14px0.875rem1.4rem
font-size: 28px1.75rem2.8rem
padding: 12px 24px0.75rem 1.5rem1.2rem 2.4rem
margin-bottom: 32px2rem3.2rem
border-radius: 8px0.5rem0.8rem
max-width: 1200px75rem120rem
@media (min-width: 768px)48rem48rem
最後の行は両方の列とも48remのままです。メディアクエリの中のremはフォントサイズの初期値から計算され、html要素に書いたルールは影響しないからです[2]。私たちはChromeとFirefoxで、62.5%のテクニックを使ったページを測りました。@media (min-width: 48rem)のルールは幅768ピクセルから効き、ブラウザーのフォントサイズを20ピクセルにすると、同じルールは幅960ピクセルから効きました。

pxをremに変換するツールの欄はどんな書き方を受け付ける?

2つの欄は、この表でそれぞれの欄の見出しの下にある書き方をすべて受け付けて計算するので、貼り付ける前に寸法を直す必要はありません。デザインやスタイルシートからコピーしたまま、単位があってもなくても貼り付けられます。中央の列は、このツール自身が基準16ピクセルで計算した結果です。remの欄の表は、remをpxに変換するツールのページにあります。
入力・貼り付けする内容ツールの計算結果この書き方の扱い
1つ目の欄:基準16ピクセルでのピクセルの寸法
241.5 rem数値だけを入力できます。デザインツールの寸法の表示と同じ書き方です。
24px1.5 rem単位が数字に付いていても、数値を読み取り、pxは無視します。
24ピクセル1.5 rem日本語の単位を付けたままでも、数値だけを取り出します。
241.5 remIMEで入力した全角の数字も、半角と同じく24として読み取ります。
13.50.8438 rem小数の寸法も受け付けます。結果は丸めて小数点以下4桁で表示します。
1,20075 remカンマのあとにちょうど3桁が続くので、日本語の書き方と同じく桁区切りとみなし、1200ピクセルとして計算します。欄の下には、もう一つの読み方(1.2)を示す案内が表示されます。
1,20075 rem全角のカンマと数字でも、同じく1200ピクセルとして計算し、欄の下に同じ案内が表示されます。
1.2000.075 remこのページではピリオドを小数点として読むので、あとに3桁が続いても1.2ピクセルになり、欄の下に案内が表示されます。1200ピクセルにするには1200か1,200と書いてください。
padding: 20px;1.25 remスタイルシートの1行をそのまま貼り付けても、数値だけを取り出し、プロパティ名とセミコロンは無視します。
−8px-0.5 rem数字の前の組版用のマイナス記号「−」は、負の値として読み取ります。負のマージンと同じです。
「基準のfont-size」の欄:ツールが使う基準
62.5%10 pxhtml要素に書くパーセントです。既定の基準16ピクセルの62.5%で10になります。
font-size: 18px18 pxスタイルシートからコピーした行です。18を基準として使います。
1616 px全角の数字で書いた基準も読み取ります。
ここに書く前に、どの書き方も実際の欄で試しました。欄の下に数値を1つだけ入力するよう求めるメッセージが出たら、欄には寸法だけを残してください。

Figmaの寸法やスタイルシート全体をpxからremにするには?

換算する寸法が少ないなら、このツールで十分です。数が多い場合は、デザインツールやビルドツールにremを計算させることもできます。

  1. デザインファイルの寸法

    デザインツールで寸法を表示しているパネルから、ピクセルの寸法をコピーして1つ目の欄に貼り付けます。ページがhtml要素にフォントサイズを指定している場合は、結果をコピーする前にそのサイズを「基準のfont-size」の欄に入力してください。
  2. FigmaのDev Mode

    有料プランのDev Modeでは、寸法をremで直接表示できます。インスペクトパネルの[コード]セクションで、言語ドロップダウンの横にある[インスペクトの設定]をクリックし、単位にremを選びます。基準を変えるには、同じ場所で[縮尺を設定…]を選び、[縮尺]のウィンドウに基準を入力します。
  3. Sassの関数

    Sassでは、数値の割り算にsass:mathモジュールのmath.div()関数を使います[3]。@function rem($px) { @return math.div($px, 16px) * 1rem; }という関数を書くと、rem(24px)は1.5remになります。
  4. スタイルシート全体にはPostCSS

    postcss-pxtoremプラグインは、ビルドのときにCSSファイルのpxをremに変換します[4]。基準の初期値は16で、既定の設定ではfont、font-size、line-height、letter-spacingの文字関係のプロパティだけを変換し、メディアクエリはピクセルのまま残します。

ピクセルから他の単位への変換

出典

  1. CSS Values and Units Module Level 4 — W3C
  2. Media Queries Level 4 — W3C
  3. sass:math — Sass
  4. postcss-pxtorem — GitHub
  5. <length> - CSS — MDN Web Docs
  6. Web Content Accessibility Guidelines (WCAG) 2.2 (日本語訳) — W3C、ウェブアクセシビリティ基盤委員会 (WAIC) 訳

表の数値はすべて単位の定義から計算し、公開前に検算しています。歴史的なデータと各地の単位の名称は、上記の出典に基づいています。

最終確認日: · 作成・確認: Arteonチーム

pxからremへの変換についてよくある質問

16 pxは何rem?

既定の基準16ピクセルでは、16ピクセルは1 remです。62.5%のテクニック、つまり基準10ピクセルでは1.6 remです。

14 pxと12 pxは何rem?

基準16ピクセルでは、14ピクセルは0.875 rem、12ピクセルは0.75 remです。

24ピクセルはいつも1.5 remですか?

そうなるのは基準16ピクセルのときだけです。ページがhtml要素に別のサイズを指定している場合はそのサイズで割り、基準10ピクセルなら24ピクセルは2.4 rem、基準20ピクセルなら1.2 remです。

なぜ16で割るのですか?

多くのブラウザーでフォントサイズの既定値が16ピクセルだからです。ただし、この値はユーザーの設定で変わることがあります[5]。私たちの測定でも、Chrome、Edge、Firefoxは設定を変える前はこのサイズを使っていました。

62.5%のテクニックでメディアクエリのremは変わりますか?

変わりません。@media (min-width: 48rem)のルールは、このテクニックを使っても使わなくても768ピクセルから効きます。メディアクエリの中のremはフォントサイズの初期値から計算されるからです[2]。メディアクエリの境界は16で割って換算してください。

pxをremにするのとemにするのは、何が違いますか?

remはhtml要素のフォントサイズを基準にするので、ページ全体で同じ基準で割ります。emは親要素のフォントサイズを基準にするので、親要素のサイズで割ります。この計算にはpxをemに変換するツールが使えます。

1pxの枠線もremで書くべきですか?

どの設定でも枠線を1ピクセルの太さに保ちたいなら、1pxのままにしてください。0.0625remと書くと、ブラウザーで「大」を選んで基準が20ピクセルになっている読み手には、1.25ピクセルの線になります。postcss-pxtoremプラグインも、既定の設定ではborderプロパティをピクセルのまま残します[4]。

remで書いた文字は読み手の設定に合わせて大きくなりますか?

はい。remで書いた文字はブラウザーで選んだフォントサイズに合わせて大きくなり、ピクセルで書いた文字は変わりません。WCAGの達成基準1.4.4「テキストのサイズ変更」は、この点を扱っていて、コンテンツや機能を損なわずに200%までサイズを変えられることを求めています[6]。

Arteonの無料ツールのスクリーンショット: ピクセル(px)をremに変換

ツールの改善にご協力ください

ブラウザーと違う結果になる寸法を見つけた、このツールへのアイデアがある、という場合はご連絡ください。