CSS単位変換ツール
px・rem・em・%をフォントサイズ基準で変換
単位を付けて入力することもできます(例: 1.5rem)。1pt = 4/3pxで計算します。
入力値をご確認ください(数値を入力し、基準値は0より大きくしてください)。
基準値の設定(rem / em / % / vw / vh 換算の基準)
処理中…
0.0
停止していません。計算が終わると結果が表示されます。
CSS単位変換ツールについて
px・rem・em・%・pt・vw・vhのいずれかで値を入れると、選んだ単位に換算します。基準値は自分で設定します。ルート(html)の文字サイズがremの基準、親要素の文字サイズがemの基準、コンテナサイズが%の基準、ビューポートの幅・高さがvw・vhの基準です。初期値はそれぞれ16px、16px、100pxで、ビューポートは今のウィンドウサイズが入ります。ptは1pt = 4/3pxで固定です。単位を省くとpxとして扱います。
計算は掛け算一回ですが、何を基準にするかで結果は大きく変わります。特に%はプロパティごとに基準が違い、pxは名前に反して画面の物理ピクセルではありません。
CSSのpxは画面の画素ではない
CSS Values and Units仕様はpxを「参照ピクセル」で定義しています。96dpiの機器を腕の長さの距離で見たときの1画素の視角で、腕の長さを28インチとすると約0.0213度です。つまりCSSのpxは長さより角度に近い単位で、遠くから見るテレビでは物理的に大きく、手に持つスマートフォンでは小さく描かれるのが仕様の意図です。
ブラウザはこれをデバイスピクセル比で実現します。比が3のスマートフォンでは、CSSの1pxが物理画素3×3個で描かれます。仕様は1in = 96px、1in = 2.54cmと固定しているため、CSSで1cmと書いても画面に定規を当てると正確に1cmにならないのが普通です。
remとem:何に掛けるのか
remはルート要素のfont-size、emはその要素自身のfont-sizeが基準です(font-sizeプロパティの中で使ったemだけは親の文字サイズが基準)。このツールの「親の文字サイズ」欄は、よくあるfont-sizeでのemを計算するものです。
emは入れ子で掛け算されます。font-size: 1.2emのリストを3段入れ子にすると16 × 1.2 × 1.2 × 1.2 ≈ 27.6pxになります。remは常にルートだけを見るので累積しません。一方、ボタンのpaddingをemで指定すると、文字が大きくなったとき余白も一緒に広がります。
remを使う最大の理由はアクセシビリティです。利用者がブラウザの既定文字サイズを16pxから20pxに上げると、remの文字は追従し、pxで固定した文字は変わりません。
%の基準はプロパティで違う
このツールは%を「コンテナサイズ」一つに対する割合として計算します。実際のCSSでは、width・left/rightは包含ブロックの幅、heightは包含ブロックの高さ、paddingとmarginは上下も含めて包含ブロックの「幅」、font-sizeは親の文字サイズ、line-heightは要素自身の文字サイズ、translate()は要素自身の大きさが基準です。どの値をコンテナ欄に入れるか判断してください。
印刷単位では、仕様上1pt = 1/72in、1in = 96pxなので1pt = 4/3px、12pt = 16pxです。ワープロの12ptがWebの既定16pxと同じ大きさになるのはこのためです。単位でptを選ぶか12ptのように入力すれば、そのままpxやremに換算されます。
例
デザインカンプの24pxをremに
- 入力
24px、ルート16px- 結果
1.5rem
24 ÷ 16 = 1.5。ルートを20pxにすると30pxで描かれます。
親が20pxのときのem
- 入力
24px、親20px- 結果
1.2em
同じ24pxでもemの値は親の大きさで変わります。
サイドバー幅を%に
- 入力
300px、コンテナ1200px- 結果
25%
300 ÷ 1200 × 100。幅基準のプロパティでのみ正しい値です。
使い方
- ルート文字サイズ、親の文字サイズ、コンテナサイズ、ビューポートの幅・高さを実際の値に合わせます。
- 単位付きで値を入力します(単位なしはpx)。
- 変換先の単位を選び、結果を確認してコピーします。
よくある質問
remとemはどちらを使うべきですか?
文字サイズやレイアウトの間隔は累積しないremが扱いやすく、ボタン内の余白のように文字サイズに比例させたい値にはemが向いています。
vwやvhも換算できますか?
できます。1vwはビューポート幅の1%、1vhは高さの1%なので、基準値設定のビューポート幅・高さで計算します。初期値は今のウィンドウサイズなので、1920×1080や375×812など対象の画面サイズに変えてください。
1remは常に16pxですか?
16pxはブラウザの既定値にすぎず、利用者の設定やhtmlのfont-sizeで変わります。
出典
基準日: