CSS3では、フォントサイズの指定に「rem」と「em」という単位が使えます。
これらの単位は、どちらも相対的な値であり、親要素のフォントサイズに対する相対値で指定されます。以下、remとemの違いと使い分け方について解説します。
remとは?
remとは「root em」という意味で、ルート要素であるhtml要素のフォントサイズを基準とする単位です。
つまり、html要素のフォントサイズに対する相対値で指定されます。
例えば、html要素のフォントサイズが16pxであれば、1remは16pxに相当します。
emとは?
emは、指定された要素のフォントサイズに対する相対値で指定されます。
つまり、親要素のフォントサイズに対する相対値で指定されます。(この点は%と同じです。)
例えば、親要素のフォントサイズが16pxであれば、1emは16pxに相当します。
使い分け
remはルート要素のフォントサイズに対して相対的な値で指定されるため、全体のレイアウトに対して一括でフォントサイズを変更する場合に適しています。
一方、emは親要素のフォントサイズに対して相対的な値で指定されるため、テキストの大きさや行間など、親要素に依存する値を指定する場合に適しています。また、親要素のフォントサイズを変更することで、簡単にまとまった変更ができるため、柔軟なレイアウトを実現することができます。
コード例
/* remを使用したフォントサイズ指定 */
html {
font-size: 16px;
}
h1 {
font-size: 2rem; /* 32pxに相当 */
}
p {
font-size: 1.2rem; /* 19.2pxに相当 */
}
/* emを使用したフォントサイズ指定 */
body {
font-size: 16px;
}
.container {
font-size: 1.2em; /* 親要素(body)のfont-sizeに対して1.2倍のサイズ */
}
.box {
font-size: 0.8em; /* 親要素(container)のfont-sizeに対して0.8倍のサイズ */
}
remのサポート状況
remの各ブラウザでのサポート状況はこのページで確認できます。
remはIE8以前ではサポートされていないため、古いブラウザに対応する必要がある場合にはemやpxなどの単位を使用する必要があります。
結論
レスポンシブデザインにおいては、remの利用がおすすめです。html要素を起点として全体的にサイズを変えるので、シンプルで分かりやすいです。
PCのみの場合はpxと%で十分です。
スマホのレスポンシブ対応に、vw、vh、vmin、vmaxという単位もあります。別の記事で紹介します。
はくです。お役に立てましたら幸いです。ご不明点やご質問がございましたら、お気軽にコメント欄よりお問い合わせください。
コメント