導入
(レスポンシブを含む)スマホサイトのフォントサイズの指定は
- どのスマホで見てもフォントサイズが同じ
- 画面の横幅の○%と指定する
と二種類に分かれています。どう違うかというと
- フォントサイズ固定→小さいスマホで見て文字が潰れない。 一行に何文字表示されるかはスマホによって可変
- 横幅の○%指定 →スマホの解像度によってフォントサイズが可変。一行に何文字表示されるかはどのスマホで見ても変わらない
Yahooのスマホサイト等では地の文はどのスマホで見てもフォントサイズ16pxで固定のようで世間的には固定サイズが一般的です。
ただ、プロに仕事が回ってくるような複雑なデザインのサイトだとどのスマホで見ても見た目を同じにしたいときが多くあります。
やってみた
https://jsfiddle.net/sphenisc/uov5y2kt/9/
(横幅を変えやすいのでJSFiddleにしました)
よくある3カラムデザインです。
要点
@function fz($size) {
@return ($size/16) + rem;
}
:root {
@include mq_sp {
font-size: 4.26666666667vw !important;
}
}
html,
body {
font-size: fz(16);
}
h3 {
font-size: fz(20);
}
パソコン | タブレット | SP 414px | 375px | 320px | |
---|---|---|---|---|---|
h3のフォントサイズ | 20px | 20px | 22.10px | 20.01px | 17.06px |
pのフォントサイズ | 16px | 16px | 17.68px | 16.00px | 13.65px |
h3のフォントサイズは1.25remなので
PCとタブレット:16 × 1.25 = 20px
スマホ :4.26vw × 1.25 = 5.325vw
pのフォントサイズは指定していないので
PCとタブレット:16px
スマホ :4.26vw
となります。
フォントサイズを%指定(vw)したことで414pxのスマホで見ても320pxのスマホで見てもpタグの文字は**「あ~て」**が1行目に表示されます。
注目してほしいのはpにスマホ時のフォントサイズを何も書いていないのでPC用のコードがそのまま適用されているのですが
SPのみルートのフォントサイズをvwにして関数でルートに比べてどのくらいのフォントサイズなのかを関数で指定しているので何も書かなくても勝手にvwに変換してくれています