FIRST CH TOOLS / 21 PX ⇄ REM / EM
PX ⇄ REM / EM 単位変換&フォントスケール表
ルートのフォントサイズを決めて、px・rem・em のどの欄に入れても残りが即時に決まります。12px〜64px のよく使うサイズを並べたスケール表はCSS変数やSCSSとしてそのままコピーでき、CSSを貼り付ければ px→rem の一括変換もできます。
基準を決めて、どの欄に入れても即時換算されます
計算はこのページの中だけで行われ、入力がブラウザの外へ出ることはありません。URLパラメータで直接呼び出せます: /px-rem/?px=24 / /px-rem/?rem=1.5&root=10
よく使うフォントサイズの早見表(12px〜64px)
| px | rem | em | 用途の目安 |
|---|
表の値は「単位変換」タブで決めたルート(html)のフォントサイズと親要素のフォントサイズに追従します。ルートが16pxのときは px ÷ 16 がそのまま rem になり、どの値も割り切れます(16は2の4乗なので、二進小数でも誤差が出ません)。
CSSを貼ると単位をまとめて置き換えます
コメント・文字列(content: "10px" など)・url() の中身は書き換えません。--size-16px のように識別子の一部になっている数字も対象外です。
How to Use
- ルートのフォントサイズを決めるふつうは 16px(ブラウザの既定)のままで構いません。html { font-size: 62.5% } を使っているなら 62.5% ボタンを押すと基準が10pxになります。
- px・rem・em のどれかに入れる1つの欄に入力すると、残りの2つとpt・CSSスニペットが即時に決まります。「よく使う値」のボタンからも入れられます。
- 表やCSSごとコピーする「スケール表」タブで12px〜64pxの一覧をCSS変数やSCSSとして書き出せます。既存のCSSを貼って px→rem をまとめて置き換えることもできます。
About This Tool
rem はルート(html要素)のフォントサイズが基準、em は親要素のフォントサイズが基準です。ブラウザの既定は16pxなので、何も指定しなければ 1rem = 16px。24px ÷ 16 = 1.5rem のように、pxを基準サイズで割った値がremになります。
pxで書くと、閲覧者がブラウザで変えた文字サイズが効きません。設定で既定の文字サイズを20pxにしている人が見ても、font-size: 14px と書かれた文字は14pxのままです。remで書いておけば同じ比率で拡大されるため、フォントサイズ・行間・要素の余白はremで指定するのが基本になります。ズーム(ブラウザの拡大)はpxでも効きますが、文字サイズの設定はこれとは別のしくみです。
62.5%テクニックには副作用がある
html { font-size: 62.5% } と書くとルートが10pxになり、1.4rem = 14px と暗算しやすくなります。よく使われる書き方ですが、書いたremがすべてブラウザ既定の8分の5になるため、文字を大きく設定している閲覧者の拡大幅が意図より小さくなります。ルートは 100% のままにして、このツールで換算した値を書く方が安全です。
emは入れ子にすると掛け算になる
0.9em を指定した要素の中でさらに 0.9em を指定すると、外側から見て 0.81倍 になります。リストの入れ子やコンポーネントの重ね方で文字がじりじり小さくなるのはこれが原因です。フォントサイズはrem、その要素の中での相対的な余白(padding・margin・letter-spacing)はem、という使い分けが扱いやすくなります。
割り切れない値は丸める
ルートが16pxのときは16が2の4乗なので、13px = 0.8125rem のようにどの整数pxも割り切れます。ルートを14pxや15pxにすると 16 ÷ 14 = 1.142857… のように循環し、どこかで丸めることになります。このツールは既定で小数6桁まで見て末尾の0を落とし、割り切れたかどうかを結果の下に出します。ブラウザは内部でより高い精度を保つので、小数3〜4桁もあれば見た目の差は生じません。
罫線の1pxはpxのまま残す
rem化するとルートのサイズによって罫線が 0.9px や 1.1px になり、環境によって太さがばらついたり消えたりします。1pxの罫線はpxのままにしておくのが無難です。「CSSまとめて変換」タブの「1pxはそのまま残す」を有効にしておくと、絶対値が2px未満の値は変換されません。
メディアクエリの条件はpxで書く
ブレークポイントは端末の幅で決めることが多く、ルートのフォントサイズに連動させたくない場面がほとんどです。@media の条件をremで書くと、閲覧者の文字サイズ設定でブレークポイント自体が動きます。既定では @media や @container の条件部分を変換対象から外しています(ブロックの中の宣言は変換します)。
ptは印刷用の単位
CSSの 1pt は1/72インチ、1px は1/96インチなので 1px = 0.75pt です。画面向けのCSSでptを使う理由はありませんが、印刷用スタイルやWord・PDF・デザインツールとの突き合わせでpt表記が必要になることがあるため、結果に併記しています。
From AI Agents
この換算ロジックは、MCP(Model Context Protocol)サーバー @first-ch/tools-mcp の px_rem_convert ツールとしても提供しており、ブラウザを使わずAIエージェントから直接呼び出せます。CSSファイルのパスを渡して一括変換・書き出しもできます。導入方法の詳細は AIエージェントからの使い方 を参照してください。
導入
claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp
呼び出し例
# 24px は何remか(ルート16px)
px_rem_convert(value=24)
# ルートを10pxにして 1.4rem を px へ
px_rem_convert(value=1.4, unit="rem", root=10)
# CSSをまるごと px → rem(1px未満の罫線と @media の条件は残す)
px_rem_convert(css="a{padding:24px;border:1px solid red}")
# CSSファイルを読んで変換し、別ファイルへ書き出す
px_rem_convert(path="/tmp/style.css", outputPath="/tmp/style.rem.css", minPx=2)
Other Tools
- 01画像→WebP一括変換WebP Converter
- 02白背景の透過White BG Remover
- 03コントラスト比チェッカーContrast Checker
- 04文字数カウントCharacter Counter
- 05llms.txt ジェネレーターllms.txt Generator
- 06JSON-LD構造化データ生成JSON-LD Generator
- 07Markdown→PDF変換MD → PDF
- 08OGPメタタグ生成ウィザードOGP Wizard
- 09faviconジェネレーターFavicon Generator
- 10TikTok投稿ツールTikTok Publisher
- 11文字コード・改行コード変換Encoding Converter
- 12画像→AVIF変換+picture生成AVIF Converter
- 13テストデータ生成Test Data Generator
- 14Marp Markdown→スライドMarp Slides
- 15テキスト・コード差分チェッカーDiff Checker
- 16Cron式ビジュアル解説&発火日時Cron Explainer
- 17Base64 & Data URI変換Base64 & Data URI
- 18URLパラメータ分解・UTMタグ編集URL Parameters
- 19HTMLエンティティ・特殊文字エスケープHTML Escape
- 20JSON ⇄ YAML 相互変換JSON ⇄ YAML
- 22Colorコード変換&アルファ透過Color Converter
- 23MD5 / SHA-256 ハッシュ生成Hash Generator
- 24JWTデコーダー&有効期限チェッカーJWT Decoder
- 25User-Agent解析&デバイス判定User-Agent Parser
- 26UUID (v4) & ULID 一括生成UUID & ULID Generator
- 27アスペクト比計算&レスポンシブサイズAspect Ratio Calculator