marc tech

株式会社MAISON MARCが運営するブログです。Tech Blogとは名ばかりの、採用・福利厚生の情報や、日々の活動記録(?)からエンジニアのくだらない小話までMAISON MARCに関する情報をお伝えするブログとなっています!興味のある方は是非ご覧になってください。

cssのfont-sizeの単位は一体どれを使うべきだろうか

新入社員のshuです。 今回はよく使う単位、px,em,rem,vwの選択について述べていきたいと思います。

px

誰もが使用したことのある絶対指定の単位。
スクリーンの1ピクセルの長さを1とした単位。

vw

画面の横幅全体を「100vw」とみなし、それに対する割合として計算されます。 例えば、 font-size: 5vw
は画面幅320pxの場合、16px。 画面幅640pxの場合、32pxになります。

em

相対指定の単位。親要素の文字サイズに基づいて算出されます。
親要素の文字サイズが20pxのとき、1(em)=20(px)
と定義され、
子要素の文字サイズが0.8emなら 20(px)*0.8=16(px) と計算されます。
デメリットは、emで指定された要素の親要素もemで指定した場合、計算がややこしくなることです。  

rem

ルート(html)要素の文字サイズに基づいて算出されます。
大抵、ブラウザのデフォルトの文字サイズは16pxなので、
10/16=0.625より

html {
font-size: 62.5%
}

とし、1remを10pxに等しくし 、計算を楽にする小技を使います。

html {
font-size: 6.25%
}

とすれば1remが1pxに等しくなるのでこちらの方が一見、合理的に思えますが、
これはブラウザの設定で「最小フォントサイズ」が設定されていたときにレイアウト崩れを起こします。

font-sizeの相対指定をする必要性

現在の状況を鑑みれば、相対指定は必ずしも必要ではないと思われます。

1.レスポンシブ対応にするのに必要?

css3で導入されたmedia queriesを使えば必ずしも必要とは言えません。

2.拡大・縮小できない?

IEでさえ、IE10以降では問題なく拡縮できます。