一部のフォントサイズがSafari(iPhone)で大きくレンダリングされる


110

Safari / iPhoneが一部のフォントサイズ設定を無視するCSSまたはその他の理由はありますか?私の特定のWebサイトでは、iPhone上のSafariがfont-size:13pxのテキストをfont-size:15pxのテキストよりも大きくレンダリングします。一部の要素のフォントサイズをサポートしていないのでしょうか?

回答:


248

Joeの応答にはいくつかの優れたベストプラクティスがありますが、私が説明している問題は、テキストが小さすぎると考えられる場合にMobile Safariがテキストを自動的にスケーリングするという事実に集中していると思います。CSSプロパティでこれを回避できます-webkit-text-size-adjust。これをあなたの体に適用する方法のサンプルは、iPhoneだけです:

@media screen and (max-device-width: 480px){
  body{
    -webkit-text-size-adjust: none;
  }
}

2
この問題が発生しました。この小さなメディア画面ハックは問題なく動作します。CSSスターターファイルへの組み込みを開始します。
スロットル

1
うわー、病気だ!私を夢中にさせて、私はこれを見つける前にクラス名を変更してjQueryでインラインでcssを設定しようとしました。命の恩人!
Christoffer Bubach 2013

1
それは大いに役立ちました。乾杯:)
デッドマン

2
必ずメディアクエリを使用してください。これは一部のテキストを読みにくくする可能性があるようです:-webkit-text-size-adjust:none
Gemmu

9
回答を次のように更新する必要-webkit-text-size-adjust: 100%があります。これにより、自動更新が回避されますが、ユーザーが開始したズームが可能になります。(ソース)
Shawn Erquhart 2017年


11

また、ビューポートメタタグで初期ズーム設定を1に設定していることを確認してください。

<meta name="viewport" content="width=device-width; initial-scale=1.0;" />

7

ピクセル定義は本当に混乱し、ビジュアルサービス全体でまったく同じではないため、もう使用しません。

ユニットに会う

  1. 「Ems」(em):「em」は、Webドキュメントメディアで使用されるスケーラブルな単位です。emは現在のfont-sizeと同じです。たとえば、ドキュメントのfont-sizeが12ptの場合、1emは12ptと等しくなります。Emsは本質的にスケーラブルであるため、2emは24pt、.5emは6ptなどになります。emsは、スケーラビリティとモバイルデバイスに適した性質により、Webドキュメントでますます人気が高まっています。
  2. ピクセル(px):ピクセルは、画面メディアで使用される固定サイズの単位です(つまり、コンピューター画面で読み取られます)。1ピクセルは、コンピューター画面上の1ドット(画面の解像度の最小区分)に相当します。多くのWebデザイナーは、Web文書でピクセル単位を使用して、ブラウザーでレンダリングされるときにサイトのピクセル完全な表現を生成します。ピクセルユニットの1つの問題は、視覚障害のあるリーダーの場合は上方にスケーリングされず、モバイルデバイスに合わせて下方にスケーリングされないことです。
  3. ポイント(pt):ポイントは伝統的に印刷媒体(紙などに印刷されるもの)で使用されます。1ポイントは1/72インチに相当します。ポイントは固定サイズの単位であり、サイズを調整できないという点で、ピクセルによく似ています。
  4. パーセント(%):パーセント単位は「em」単位によく似ており、いくつかの基本的な違いを除けます。何よりもまず、現在のfont-sizeは100%(つまり、12pt = 100%)です。パーセント単位を使用している間、テキストはモバイルデバイスとアクセシビリティのために完全にスケーラブルなままです。

4
答えは、テキストに1つの定義済みの単位(つまり12pt)を使用し、その後のすべてのcss定義にfont-size:90%を使用することです。またはfont-size:110%; などなど。これは、サポートされているすべてのデバイスでより簡単にアクセスできます。

1
最も重要なREM(参照EM)を忘れました。ドキュメント全体で使用でき、同じままです(カスケードではありません)。
Andrew Swift

3
この回答は関連性がなく、質問にまったく回答しません。問題は、同じサイズのテキストのレンダリングが異なることであり、どの単位を使用するかではありませんでした。問題は、使用されている単位が何であれ、そのまま残ります。
Rauli Rajande 2016年

0

私は同じ問題を抱えていましたが、元のCSSでは次の行がありました。

-webkit-text-size-adjust:120%;

100%に変更する必要があり、すべてがスムーズでした。すべてのpxをemまたは%%に変更する必要はありません。


いずれにしても、デザイナーはフォントサイズにemを使用する必要があります。
Nick Turner

2
... bodyタグのcssを除き、pxサイズが最適です。
Matt Parkins、2013年

0

また、操作している要素に「幅/高さ」が設定されていないかどうかも確認してください。Safariでは、SVGのフォントサイズよりもサイズの優先順位が高く、ChromeとFFではそうではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.