フォントサイズの指定は個人的にはpxか%を使うことが多いのですが、少し前に数人でコーディング作業を行ったときに、初めてremを使いました。
使ってみてちょっと便利そうだったので、使い方などを簡単にメモしておきます。
各フォントサイズ指定の違い
フォントサイズの指定には今回紹介するrem以外にも、pxや%、emなどがあります。
pxはピクセル単位の絶対指定で、親要素の影響を受けません。
%やemは親要素の相対指定で、親要素のサイズによって表示されるサイズが変わります。
以下はpxと%とemそれぞれの指定のサンプルです。
サンプルテキストは上から順に16px、12px、9pxになるようにしています。
HTML
<div id="px"> <p>px指定</p> サンプルテキスト<br /> <div class="px-inner"> サンプルテキスト<br /> <div class="px-text">サンプルテキスト</div> </div> </div> <div id="persent"> <p>%指定</p> サンプルテキスト<br /> <div class="persent-inner"> サンプルテキスト<br /> <div class="persent-text">サンプルテキスト</div> </div> </div> <div id="em"> <p>%指定</p> サンプルテキスト<br /> <div class="em-inner"> サンプルテキスト<br /> <div class="em-text">サンプルテキスト</div> </div> </div>
CSS
body {
font-size: 100%;
}
#px {
font-size: 16px;
}
.px-inner {
font-size:12px;
}
.px-text {
font-size: 9px;
}
#persent {
font-size: 100%;
}
.persent-inner {
font-size: 75%;
}
.persent-text {
font-size: 75%;
}
#em {
font-size: 1em;
}
.em-inner {
font-size: 0.75em;
}
.em-text {
font-size: 0.75em;
}
px指定はサイズをそのまま指定すればよいので楽ですが、IEで文字の拡大ができない問題があります。
逆に%やemの相対指定はIEでも文字の拡大ができますが、親要素の値を継承するので計算が少し大変です。
(ちなみに、相対指定の値の計算はPXtoEM.comというサイトが便利です。)
remはroot + emという意味で、親要素ではなくroot(html)のフォントサイズを継承します。
相対指定なのでIEでの文字が拡大ができて、htmlを起点としたサイズ指定なので%やemよりも計算が行いやすいメリットがあります。
対応ブラウザ
remが対応しているブラウザはこちら。
IE9からの対応になるので、IE8以下での対応が別途必要になります。
remの使い方
HTML
<div id="rem"> <p>rem指定</p> サンプルテキスト<br /> <div class="rem-inner"> サンプルテキスト<br /> <div class="rem-text">サンプルテキスト</div> </div> </div>
CSS
html {
font-size: 62.5%;
}
#rem {
font-size: 16px;
font-size: 1.6rem;
}
.rem-inner {
font-size: 12px;
font-size: 1.2rem;
}
.rem-text {
font-size: 9px;
font-size: 0.9rem;
}
計算がしやすいように、基準となるhtmlのフォントサイズは62.5%(10px)にしています。
その上で、bodyにデフォルトとなるフォントサイズをremで指定すると設定がしやすいです。
IE8以下への対応として、remでの指定の前にpxで指定しています。
【参考サイト】

コメントが承認されるまで時間がかかります。