Web制作やCSSコーディングをしていると、remとpxという2種類の単位を頻繁に目にすることでしょう。
特にレスポンシブデザインが主流となった現代では、remの重要性がますます高まっています。
しかし「remって結局どういう単位?」「pxとremをどうやって変換すればいいの?」と疑問に感じている方も多いのではないでしょうか。
本記事では、remとpxの変換方法は?remとピクセルの単位換算・変換方法を例題付きで解説!というテーマで、基本的な考え方から実践的な換算方法まで、わかりやすく丁寧にお伝えしていきます。
具体的な数式や例題もご用意していますので、ぜひ最後までご覧ください。
remとpxの変換方法の結論:1rem=16pxが基本の換算式
それではまず、remとpxの変換方法における結論から解説していきます。
remとpxの換算において、最も基本となるのは「1rem=16px」という関係式です。
これはブラウザのデフォルトフォントサイズが16pxに設定されていることに由来しています。
remとはRoot EMの略で、HTMLのルート要素(html要素)のフォントサイズを基準として計算される相対単位です。
つまり、html要素のフォントサイズが16pxであれば、1remは16pxに相当するわけです。
remとpxの基本変換式
px ÷ 16 = rem(ルートフォントサイズが16pxの場合)
rem × 16 = px(ルートフォントサイズが16pxの場合)
この基本式さえ押さえておけば、多くの場面で迷わずに換算できるようになるでしょう。
たとえば、デザインカンプで24pxと指定されている文字サイズをremで表現したい場合、24 ÷ 16 = 1.5remと計算できます。
逆に、CSSで2remと記述されている値がどのくらいの大きさなのかを知りたい場合は、2 × 16 = 32pxと求められます。
ただし、html要素にfont-sizeが別途指定されている場合は、その値が基準になる点に注意が必要です。
ルートフォントサイズをカスタマイズしているプロジェクトも多いため、常に「どのフォントサイズが基準になっているか」を確認する習慣をつけておきましょう。
remとpxそれぞれの単位の意味と特徴を理解しよう
続いては、remとpxそれぞれの単位の意味と特徴を確認していきます。
変換方法を正しく使いこなすためには、まず各単位の特性を理解しておくことが重要です。
px(ピクセル)とは何か
px(ピクセル)は、画面上の最小表示単位を基準とした絶対単位の一種です。
「絶対単位」と呼ばれるように、親要素や設定によって値が変動しない固定的な大きさを持っています。
デザインカンプやワイヤーフレームでは、ほとんどの場合px単位で寸法が指定されています。
視覚的に直感的なため、デザイナーとエンジニアのコミュニケーションでも多用される単位でしょう。
ただし、ユーザーがブラウザのフォントサイズ設定を変更しても、px指定のサイズは変わらないというデメリットがあります。
アクセシビリティの観点からは、ユーザーの設定を尊重できるremの使用が推奨される場面も増えています。
rem(ルートEM)とは何か
remは「Root EM」の略で、html要素に設定されたフォントサイズを基準とする相対単位です。
親要素の影響を受けるemとは異なり、常にルート要素(html)のフォントサイズだけを参照するのが大きな特徴です。
たとえば、ネストが深い要素でも1remは必ずhtml要素のフォントサイズと同じ値を示します。
これにより、emで起きがちな「入れ子によるサイズの意図しない拡大・縮小」を防ぐことができます。
レスポンシブデザインでは、html要素のfont-sizeをメディアクエリで変更するだけで、rem指定した全要素のサイズが一括で変化するという利点も持っています。
emとremの違いについて
remと似た単位に「em」があります。
emとremの最大の違いは、基準にする要素が異なる点です。
emは親要素のフォントサイズを基準にするのに対し、remはhtml要素(ルート要素)のフォントサイズを基準にします。
たとえば、親要素のfont-sizeが20pxに設定されている場合、その子要素で1.5emと記述すると30pxになります。
一方、1.5remと記述した場合は親要素の影響を受けず、html要素のフォントサイズ(例:16px)を基準として24pxになります。
このように、remのほうが予測しやすく管理しやすい単位と言えるでしょう。
remとpxの具体的な変換方法を例題付きで解説
続いては、remとpxの具体的な変換方法を例題付きで確認していきます。
実際のコーディング場面を想定した例題を通じて、換算の感覚を身につけていきましょう。
pxからremへの変換方法
pxからremへ変換するには、「px値 ÷ ルートフォントサイズ = rem値」という計算式を使います。
デフォルトのルートフォントサイズである16pxを基準にした場合の変換例を見てみましょう。
| px値 | 計算式 | rem値 |
|---|---|---|
| 8px | 8 ÷ 16 | 0.5rem |
| 12px | 12 ÷ 16 | 0.75rem |
| 16px | 16 ÷ 16 | 1rem |
| 20px | 20 ÷ 16 | 1.25rem |
| 24px | 24 ÷ 16 | 1.5rem |
| 32px | 32 ÷ 16 | 2rem |
| 48px | 48 ÷ 16 | 3rem |
| 64px | 64 ÷ 16 | 4rem |
デザインカンプに「見出しフォントサイズ:32px」と記載されている場合の変換例を確認しましょう。
例題:32pxをremに変換する
32(px) ÷ 16(ルートfont-size) = 2rem
CSSでの記述:font-size: 2rem;
このように、ルートフォントサイズで割るだけで簡単にrem値を求められます。
remからpxへの変換方法
逆にremからpxへ変換したいときは、「rem値 × ルートフォントサイズ = px値」という計算式を用います。
既存のCSSコードを読む場面や、デザイナーへ数値を伝える際に役立つ計算方法です。
例題:2.5remをpxに変換する
2.5(rem) × 16(ルートfont-size) = 40px
つまり、2.5remは40pxに相当します。
remからpxへの変換も、基本的な考え方はpxからremへの変換と同じです。
基準値(ルートフォントサイズ)を把握しておくことが、正確な換算の鍵と言えるでしょう。
ルートフォントサイズが10pxの場合の変換方法
プロジェクトによっては、計算をしやすくするためにhtml要素のfont-sizeを10pxに設定することがあります。
CSSの記述例
html { font-size: 10px; }
この設定を行うと、1rem=10pxという非常にシンプルな換算式が成立します。
たとえば16pxをremに変換したい場合、16 ÷ 10 = 1.6remと素早く計算できます。
| px値 | 計算式(ルート10px) | rem値 |
|---|---|---|
| 10px | 10 ÷ 10 | 1rem |
| 14px | 14 ÷ 10 | 1.4rem |
| 16px | 16 ÷ 10 | 1.6rem |
| 20px | 20 ÷ 10 | 2rem |
| 24px | 24 ÷ 10 | 2.4rem |
| 32px | 32 ÷ 10 | 3.2rem |
ただしこの方法は、ブラウザのデフォルト設定(16px)を上書きするため、アクセシビリティへの影響を慎重に検討する必要があります。
%を使って「font-size: 62.5%」と記述する方法もあり、これはデフォルト16pxの62.5%=10pxを意味します。
この記述方法であれば、ユーザーのブラウザ設定を完全に無視せず、相対的なサイズ指定が維持されるため推奨されることが多いでしょう。
remをCSSで活用する実践的なテクニック
続いては、remをCSSで活用する実践的なテクニックを確認していきます。
変換方法を理解したうえで、実際のコーディングにどう活かすかを見ていきましょう。
レスポンシブデザインでのremの活用
remの最大のメリットの一つが、レスポンシブデザインとの相性の良さです。
html要素のfont-sizeをメディアクエリで変更することで、rem指定した全要素のサイズをまとめてコントロールできます。
メディアクエリとremの組み合わせ例
html { font-size: 16px; }
@media (max-width: 768px) { html { font-size: 14px; } }
このように設定すると、768px以下の画面では全体のrem基準が14pxに変わり、サイト全体のサイズが比例して縮小されます。
個々の要素を一つひとつ調整する必要がなくなるため、保守性の高いCSSを実現できます。
大規模なWebサイトやWebアプリケーションを開発する際には、特に効果を発揮するテクニックでしょう。
font-sizeだけでなくmarginやpaddingにもremを使う
remはfont-sizeだけでなく、margin・padding・widthなどのあらゆるプロパティに使用できます。
特にmarginやpaddingをremで統一することで、テキストサイズとレイアウトの余白が連動し、視覚的に整ったデザインを保ちやすくなります。
remを使ったCSSの記述例
.container { padding: 1.5rem; margin-bottom: 2rem; }
.heading { font-size: 2rem; margin-bottom: 1rem; }
.text { font-size: 1rem; line-height: 1.8; }
このようにremで統一することで、ルートフォントサイズを変更するだけでレイアウト全体のバランスを維持しながらスケール変更が可能になります。
コンポーネントベースのCSS設計とも非常に相性が良いアプローチと言えるでしょう。
SassやCSS変数とremを組み合わせる方法
SassやCSS変数(カスタムプロパティ)を活用すると、rem変換をさらに効率的に管理できます。
Sassでは関数を定義することで、pxの値を入力するだけで自動的にremに変換する仕組みを作れます。
Sassでのrem変換関数の例
@function rem($px) { @return $px / 16px * 1rem; }
使用例:font-size: rem(24px); → 1.5rem として出力されます
CSS変数とremを組み合わせた管理方法
:root { –font-base: 16px; –spacing-sm: 0.5rem; –spacing-md: 1rem; –spacing-lg: 2rem; }
CSS変数でrem値を定数管理することで、デザインシステムの一貫性を保ちやすくなります。
チーム開発においても、変数名から意味が伝わるため可読性と保守性が向上するでしょう。
このような工夫を取り入れることで、毎回手動で変換計算をする手間を省き、コーディングの効率を大幅に高められます。
まとめ
本記事では、remとpxの変換方法は?remとピクセルの単位換算・変換方法を例題付きで解説!というテーマで、基本的な換算式から実践的な活用方法までご紹介しました。
最も基本となる換算式は、「px ÷ 16 = rem」「rem × 16 = px」というシンプルなものです。
ただし、プロジェクトのルートフォントサイズが変更されている場合は、その値を基準に計算することを忘れないようにしましょう。
remはアクセシビリティへの配慮やレスポンシブデザインとの相性が良く、現代のWeb制作において非常に重要な単位です。
pxとremそれぞれの特性を理解したうえで使い分けることが、質の高いCSSコーディングへの近道と言えるでしょう。
本記事の内容を参考に、ぜひremを積極的にご活用ください。