🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1139閲覧

モダンブラウザではfont-sizeのpx指定でも相対的に大きくなるのに未だにemやremを使用するのはなぜですか?

yoshi_bgn

総合スコア12

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

3クリップ

投稿2020/01/06 04:55

初心者な質問で申し訳ないのですが、検索してもこの回答にたどり着けなかったので質問させてください。。

CSSのfont-size指定について、『pxでの指定は避けましょう』とされていますが、それはIEの過去のバージョンでブラウザのfon-size設定が効かなくなってしまうからと認識しています。

現在はIE9以下を対応することはほとんどないのでpx指定が定着してきてもおかしくないと思っているのですが、font-sizeをpxで指定することに未だ何か問題があるのでしょうか?

ご教示のほどよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

現代では、マルチデバイスの対応が必須となってるからです。
つまり、マルチデバイスにおけるレスポンシブデザインで構築することが推奨されているからです。
PCだけであれば、px指定でも特に、どのディスプレイでも、大体同じ大きさのフォントとなって見え方が決まりますが、
例えば、同じ16pxと指定した時、スクリーン上の実際の表示サイズがスマホデバイスによって変わります。
これは、デバイスによって解像度(ここで言う解像度は、dpi、ppiのこと)が違うため、
実画面サイズ(画面のインチ数)、解像度によって、物理ピクセルも論理ピクセル変わるため、
16pxと、ピクセル絶対値では、
あるデバイスでは、1インチで表示されてても、違うデバイスでは、2インチで表示される、などの現象がおきます。

また、Webサイトのデザインの多くは、デザイナーが意図したサイズ感、比率で制作されているため、
フォントの大きさが、デバイスによって、サイズ比率がバラバラになってしまっては、サイトデザインのコンセプトなどに大きく影響してしまうので、
画面サイズの比率から大きさを決めれる、vwや、vhといった、ビューポート系の単位が重宝されているのです。

例えば、デザインは、横750pxのデザイン(現在最も普及されていると思われる物理ピクセル)時に、基本32px(論理ピクセル上は16pxになることが多い)のフォントサイズを基準にする場合、下記のようなCSSを組みます。

css

1html { 2 font-size: 4.2666vw; 3} 4/* pは、デザイン上の28pxの比率のサイズとして扱いたい */ 5p { 6 /* 全体基準の87.5%のフォントサイズとする */ 7 font-size: 0.875rem; 8}

ようは、デザインの比率感を、デバイスによって変えたくないって時に、pxの絶対値だと、都合が悪いってことですね。
PCだけが対象の場合は、pxの指定だけでなんの問題もありません。

投稿2020/01/06 05:53

編集2020/01/06 05:57
miyabi_takatsuk

総合スコア9555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/06 06:12

なるほど、質問者のちょっとした思い違いもありますね。pxでは同じデバイス同じブラウザでは相対的に拡縮はしませんし。
miyabi_takatsuk

2020/01/06 06:25 編集

ですね。 か、もしかしたら、Ctrl + マウスホイールとかして、変わるやん!とか思ったのかも 汗 また、マルチデバイスのことを考えていないのかな?と思い、 本質的に、現代では相対単位を使うべき、と云われる理由って観点だけで回答してみました。 場合によっては、なぜ疑問になっているか?を追求したほうがいいかもですね。
m.ts10806

2020/01/06 06:28

「ブラウザの幅を変えて」なんですけどね。本来。余程要件に含まれてない限り100%以外では対応しませんし。
yoshi_bgn

2020/01/06 08:54

ご回答ありがとうございます!大変わかりやすかったです! 解像度の問題だったのですね・・マルチデバイスを完全に失念していました>< ブラウザ幅で文字サイズを可変にするのは要件でもよくあるのでvwを使ったりするのはわかるのですが、remなんかはユーザの設定によって変わるものなので、なんとなく相対的にしたほうがいいんじゃないかと思いつつも、ブラウザがpxでも相対的に変更してくれるなら別にいいのでは・・?と疑問に思っていました! 納得です!
miyabi_takatsuk

2020/01/06 09:05

remは、PCなら、下記のようにしたりしして、HTMLのフォント級数を固定させたりします。 (ユーザーのブラウザ拡縮を食らっても、全体デザインと級数比率を一定にするため) html { font-size: 16px; } p { font-size: 0.875rem; } pxだと相対的にはなりません。 絶対値なので、PCにおいては、ブラウザの表示拡縮を行わない限り、大きさは変わりません。 ただし、ディスプレイによって、実表示の大きさは変わります。 (だいたいのディスプレは、96dpiだが、解像度が同じでも、ディスプレイの実画角、画素数が変わるため)
yoshi_bgn

2020/01/06 09:52

おお、すみません、pxでも大きくなるやん!と思ってたのですがブラウザを拡大してただけで、ブラウザ設定による文字サイズ変更では変わらないのですね><; また、font-sizeのベースにvwを指定しているのは初めてお目にかかりました。 vwはファーストビューなどの他の要素との組み合わせで絶対レイアウトを崩したくないときくらいでしか私は使わなかったりするのですが、こういう使い方があるのですね! おはずかしいですが勘違いも含め大変勉強になりました!大感謝です><
guest

0

個人的には面白い質問だと思います。

現状、px指定をすることに問題はありません。(metaにviewportを設定するなら)
pxではなくemやremを使うことが広まった中でわざわざpxを使う必要性がなくなっているのではないでしょうか?
(個人的にはrem派です)

投稿2020/01/06 05:10

編集2020/01/06 06:21
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshi_bgn

2020/01/06 09:03

ご回答ありがとうございます! なんとなくemやremを使用したほうがいいと言われている中で、実際にはpxでもブラウザの設定を変えるとちゃんと変わってしまうので、なぜpxではだめなのかっていう明確な理由を見つけられず困ってました>< 解像度の問題があったようです・・ 私は文字サイズにはremで、それ以外の余白関連はemでと使い分けることが多いですー!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問