CSSのフォントサイズ-%またはem?


112

CSSでフォントのサイズを設定するとき、パーセント値(%)を使用する必要がありemますか?利点を説明できますか?


1
2016年の私の意見では、emと%の間に違いはありません。私が1.2 emと入力した場合、すべての最新ブラウザーは120%を使用したと
見なし

回答:


79

A List Apartには、Webタイポグラフィに関する非常に優れた記事があります。

彼らの結論:

本文でパーセンテージを指定したemsでのテキストと行の高さ(およびSafari 2のオプションの警告)のサイズ変更は、現在一般的に使用されているすべてのブラウザーで正確でサイズ変更可能なテキストを提供することが示されています。これは、キットバッグに入れて、デザイナーとリーダーの両方を満足させるCSSでテキストのサイズを変更するためのベストプラクティスとして使用できる手法です。


29
実際にline-heightsはユニットをまったく使わずに書いた方がいいです。これは仕様によって許可され、それがに来るとき完全に一定本当に迷惑ブラウザの癖を回避しているemベースラインの高さ
MARÖrlygsson

16
この記事が2007年のものであることを人々に知らせたいと思います。それ以降、最近のブラウザーはより一般的になり、最近のブラウザーは通常、フォントサイズをデフォルトとして拡大するのではなく、ズームインします。このため、「px」がより一般的になり、私の意見ではより良いアプローチとなっています。もちろんそれは議論の余地がありますが、私はemをネストしているためにプロジェクトで個人的に問題に遭遇しました。
Mohag519 2013

5
@ Mohag519 emのネストは危険な罠です。:)
Vishnudev K 2014

@ Mohag519は、ピクセル密度が高いモバイルデバイスで意図したものよりもはるかに小さいものをpxで提供しないのですか?私たちは私たちのサイトでは正確にデスクトップのようになりたいと思いますが、モバイル上のスーパー小さなません。)
johnb003

@ johnb003そのようなモバイルデバイスのデバイスピクセル比はより大きいです1。たとえば、iPhone 4の物理的な画面幅は640pxですが、320の「CSS」ピクセル(DPR = 2)として表示されます。したがって、ウェブサイトは小さく表示されません!
ベンジャミン

14

http://archivist.incutio.com/viewlist/css-discuss/1408から

%:一部のブラウザーはfont-sizeのパーセントを処理しませんが、150%を150pxとして解釈します。(たとえば、一部のNN4バージョン)IEには、ネストされた要素のパーセントに関する問題もあります。IEは、親要素に対する相対ではなく、ビューポートに対する相対パーセントを使用しているようです。さらに別の問題(W3C仕様によると正しい)ですが、Moz / Ns6では、高さ/幅が指定されていない要素に対するパーセントを使用できません。

em:ブラウザーは誤った参照サイズを使用することがありますが、相対単位のうち、問題が最も少ないものです。ただし、pxとして解釈される場合もあります。

pt:解像度間で大きく異なるため、表示には使用しないでください。ただし、印刷物を使用する場合は非常に安全です。

px:画面上の唯一の信頼できる絶対単位。ただし、1つのポイントは通常複数のピクセルで構成されているため、すべてが途方もなく小さくなるため、印刷では誤って解釈される可能性があります。


ptについて。私は/について大きな議論をしました。それについて(そして失われました)。私はあなたと同じ視点を持っていました、誰かがそのpovを共有していることを知って良かったです:)
ヴィンセント・マクナブ

12
フォントサイズにパーセンテージを使用すると、一部のNetscape Navigator 4ユーザーがページを正しく表示できない可能性があると本当に言っていますか?
初心者

4
引用された議論は2002年からのものです。emまたは%のバグでアクティブに使用されているブラウザはありますか?
Beni Cherniavsky-Paskin 2013年

1
ブラウザの20年前のバグを引用することは、有益な答えではありません。
d512 2016年

7

どちらも、フォントサイズを相対的に調整します。1.5emは150%と同じです。唯一の利点は読みやすさです。最も使いやすい方を選択してください。


誰かがこれがなぜ反対票を投じられているのか私に説明できますか?これは、emとパーセンテージの違いを正確に理解する方法です。現在、一方を他方よりも使用することの利点はありません。重要なことは、ベースフォントサイズに相対的なサイズを使用することです。
Lee Theobald

1
おかげで、私はIE6、IE7、Firefox 3、Safari 3、Opera 9.5、およびGoogle ChromeでこれをすべてWindows上でテストしたところ、すべて同じように見えました。<p style = "font-size:0.6em;">これはテストです</ p> <p style = "font-size:60%;">これはテストです</ p>
Liam

7

実際の違いは、フォントサイズではなく使用すると明らかになります。の設定はと同じpadding1emはありません100%em常にフォントサイズに相対的です。しかし%、フォントサイズ、幅、高さ、そしておそらく私が知らない他のいくつかのものに関連しているかもしれません。


5

(ほぼ?)すべてのブラウザがテキストだけでなくページ全体のサイズを変更することを考えると、アクセシブルなフォントのサイズ変更に関するpxvs %ems に関する以前の問題はかなり問題になっています。

したがって、答えはおそらくそれは問題ではないということです。あなたに合ったものを使ってください。

% それは相対的なサイズ変更を可能にするのでいいです。

px それを使用するときに期待を管理するのはかなり簡単なので、いいです。

em テキストサイズに関連するサイズ変更を可能にするため、レイアウト要素にも使用すると便利です。


特にそもそもCSSについてよく知らない人にとっては、誤解を招く答えです。CSSが論理ピクセルを定義しているという事実を無視します。これは、10年前のCSS対応モバイルデバイスの猛攻撃に対応するという間違いなく急いでの決定に基づいた恐ろしい考えでしたが、デフォルトのフォントサイズに関する限り、ピクセルは完全にブラウザーとユーザーの裁量によるものです。 、 少なくとも。これに加えて、画面のアスペクト比が大きく異なり(必ずしも画面を備えたデバイスはない)、解像度が240pから2400pになっています。JavaScriptを使わずにCSSでピクセルを使用しても、ほとんど役に立ちません。
午前

@amnよく、この回答は8歳であることに注意してください。それはインターネット時間の長い時間です。とはいえ、ピクセルは理想的ではないにしても問題ありません。ほとんどの(すべて?)ブラウザーは、特定のデバイスでのピクセルフォントサイズに適切に対応しています。しかし今日は、通常、測定単位としてremを使用します。
DA。

たぶん私は何かが足りないのですが、ピクセル長で何かがあるとどんなメリットがありますか?なぜ「上質」または「理想的」なのでしょうか。対em、例えば。それとは別に、SOの回答は時代を超えたものになるように努めるべきだと思います-結局のところ、それは知識ベースです。プログラミングのウィキペディア:)ウィキペディアは事実を反映するように更新されているので、私の控えめな意見では、そう答えるべきです。
amn

@amn理想的だとか、実際に大きなメリットがあるとは言いませんでした。私はただOPの質問に答えていました。時代を超えた存在になるために、8年後のWebの未来を予測できれば、さらにパワーアップ!しかし、ここで10年分の私の答えを絶えず更新する時間はありません。うまくいけば、人々は回答のタイムスタンプを見て十分に考慮できることを知っています。
DA。

0

CSSユニット%との違いについてem

私の知る限り、あなたが乗算あなたの場合には、これら2つのユニットはすなわち、等価です(少なくとも理論的/概念的、しかし、おそらくこれらの2つのユニットはブラウザに実装されるかもしれないではないか)を理解するようemで値100、次に置き換えるem%、それは同じものでなければなりませんか?

emと%の間に実際の違いがある場合、誰かがそれを説明できますか(または説明へのリンクを提供できます)?

(私のコメントが属する場所、つまり回答のすぐ下にインデントされたコメントを追加したかったの"Liam, answered Sep 25 '08 at 11:21"は、彼の回答が反対票を投じられた理由も知りたいからですが、コメントをそこに配置する方法を理解できなかったため、この「スレッドグローバル」応答)


-1

Galwegianが言及しているように、pxはWebタイポグラフィにとって最も信頼性が高く、ページ上で他に行うことはすべてコンピュータモニタを参照してレイアウトされているためです。絶対サイズの問題は、一部のブラウザー(IE)がWebページのピクセル値要素をスケーリングしないため、ズームイン / ズームアウトしようとすると、それらの要素を除いてすべてが調整されることです。

IE8がこれを適切に処理するかどうかはわかりませんが、他のすべてのブラウザーベンダーはピクセルを適切に処理し、ユーザーがテキストを拡大/縮小する必要がある少数派のケースです(このため、このテキストボックスはおそらく例外です)。あなたが本当に汚くなりたいのなら、あなたは常にあなたのテキストサイズを大きくするためのJavaScript関数を追加して、ユーザーに「小さい」/「大きい」ボタンを提供することができます。


1
ズームを使用する場合、IE7はピクセル値を適切にスケーリングします。IE6にはズーム機能はなく、テキストサイズのみでした。テキストサイズを変更してページをリフローするのではなく、固定ピクセルスケールを使用していたデザイナーのために、ズームが必要になりました。
マイクディミック

それはまだIE6の問題ですが、繰り返しになりますが、すべてがIE6の問題です。そのため、過去にはpxを避けていましたが、Webページ全体のズーム(テキストではなく)の概念が標準になり、pxをより頻繁に使用するようになりました。
DA。

-1

Yahooユーザーインターフェイスライブラリ(http://developer.yahoo.com/yui/)には、ブラウザーの特定の設定を「リセット」してサイトを表示するための基礎がすべて(サポートされる)と同じになるように使用される、ベースCSSクラスの素晴らしいセットがあります。ブラウザ。

YUIでは、パーセンテージを使用することになっています。


私はYUIリセットを使用してきましたが、ブラウザのテキストサイズ設定が機能しないことに気付きました!本文にpxを設定している場合、%を使用してもテキストサイズの設定に違反するため、何の意味もありません。
Jason
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.