テック情報一覧に戻る
design
2026-01-19 公開
読了目安: 約6

【完全版】Web単位の迷宮を攻略せよ!px・rem・em・%の使い分けとAdSense広告も喜ぶレスポンシブ設計

Web制作で誰もが一度は迷う「単位」の選択。px固定から脱却し、アクセシビリティと保守性を両立させるモダンな手法を徹底解説。DPRの罠やrem変換の計算を克服し、プロのコーディングスキルを身につけましょう。

導入:なぜWebの単位はこんなに複雑なのか?

Webデザインやコーディングをしていて、「デザインカンプ通りに作ったはずなのに、実機で見ると何かが違う…」と頭を抱えたことはありませんか?その原因の多くは、私たちが何気なく使っている「単位」にあります。

かつて、WebはデスクトップPCだけで見るものでした。しかし現代では、超高精細なスマホから、巨大な4Kモニター、さらにはスマートウォッチまで、画面サイズと解像度の組み合わせは無限に存在します。この多様な環境に対応するため、Webの単位は「絶対的な長さ」から「相対的な関係性」へと進化を遂げました。今回は、その迷宮を突破するための地図をお渡しします。

1. ピクセル(px)の嘘と、デバイスピクセル比(DPR)の罠

私たちがCSSで指定する 1px は、実はディスプレイの「1ドット」ではありません。これは CSSピクセル と呼ばれる論理的な単位です。

デバイスピクセル比(DPR)とは?

iPhoneのRetinaディスプレイなどを思い出してください。物理的なドット密度が非常に高いため、CSSの1pxを表現するのに、実際には縦横2枚ずつ、計4枚の物理ドットを使っていたりします。これがDPR=2の状態です。

この仕組みを知らずに画像を表示させると、「せっかくの高画質なはずなのに、画像がぼやけて見える」という現象が起こります。現代のWeb制作では、pxは「物理的な長さ」を保証するものではなく、あくまでブラウザが計算するための「仮想の単位」であることを忘れてはいけません。

2. 最強の救世主「rem(レム)」 — アクセシビリティへの架け橋

現在、プロの現場で最も推奨されているのが rem (root em) です。これは「html要素(ルート)のフォントサイズ」を基準にする単位です。

多くのブラウザのデフォルト設定では 1rem = 16px ですが、ユーザーがブラウザ設定で「文字を大きくしたい」と変更した場合、1remの値も自動的に変動します。もしすべての余白や文字サイズを px で固定してしまっていたら、ユーザーの要望を無視した「不親切なサイト」になってしまいます。

「ユーザーの権利(ブラウザ設定)を奪わない」ことが、モダンコーディングの第一歩です。

em と rem の決定的な違い

似た単位に em がありますが、これは「親要素のフォントサイズ」を基準にします。入れ子構造になると計算が雪だるま式に複雑になり、「気づいたら文字がめちゃくちゃ大きくなっていた」という事故が多発します。そのため、基本は rem を使い、コンポーネント内の一時的なスケーリングにのみ em を使うのが鉄則です。

3. 現場で差がつく!具体的な単位の黄金律

では、具体的にどう使い分けるべきか。私の推奨する「黄金の使い分けリスト」がこちらです。

  • フォントサイズ — 100% rem。px指定はアクセシビリティ違反と心得よ。
  • レイアウトの幅(Container)% または vw、あるいは max-widthrem を組み合わせて、画面幅に追従させる。
  • 余白(Padding/Margin)rem。文字サイズに連動して余白も広がると、デザインのバランスが崩れません。
  • 境界線(Border)px。1pxの線を rem にすると、計算上の端数で線が消えたり、不自然に太くなったりします。ここは「頑固なpx」の出番です。

4. 【発展】レスポンシブを極める「clamp()」と「calc()」

最近では、clamp(最小値, 推奨値, 最大値) という便利な関数が登場しました。これを使えば、「スマホでは16px、画面が広がるにつれて滑らかに大きくなり、PCでは24pxで止まる」といった指定が一行で書けます。

計算式の中で calc(1rem + 2vw) のように単位を混ぜることも可能です。これこそが、電卓を手放し、ブラウザに計算を任せる「大人のコーディング」です。

🚨 「10px以下」の指定に潜む危険

Google Chromeなどのブラウザには「最小フォントサイズ(デフォルト10px)」の設定があります。これ以下のサイズを rempx で指定しても、ユーザーの環境によっては強制的に10pxに引き上げられ、デザインが崩れる原因になります。「小さければ小さいほどカッコいい」というのはデザイナーの幻想。読みやすさを最優先しましょう。

まとめ:当サイトのツールで「単位のストレス」をゼロに

「16pxベースで、この24pxは一体何remなんだっけ…?」といちいち電卓を叩くのは、時間の無駄です。当サイトの単位変換ツールを使えば、pxからrem、さらには印刷用のpt(ポイント)やmmまで一瞬で相互変換。さらに、DPRを考慮した画像サイズの計算もサポートしています。

正しい単位を使いこなし、ユーザーに優しく、開発者にもメンテナンスしやすい「美しいコード」を目指しましょう!

パソコン博士
パソコン博士の独り言

「最近の若いもんは rem ばっかり使いおって…」とボヤく老兵もいるが、実は rem を使う最大のメリットは「保守性」なんじゃ。後から「サイト全体の余白をちょっと広げたいな」となった時、html要素のフォントサイズを1pxいじるだけで、サイト全体が呼吸するように一斉に広がる。この快感を知ったら、もうpx地獄には戻れんぞ。

あと、AdSense広告の話をしておくと、広告ユニットも実は「コンテナの幅」に依存してサイズが変わるものが多い。適切な単位でコンテナを設計しておくことは、広告のクリック率や視認性にも直結する、立派な「収益化戦略」なんじゃよ。フォッフォッフォ!

あわせて読みたい記事