SafariでGoogleフォントが正しく表示されない原因と対策【font-weight・font-style完全ガイド】

SafariでGoogleフォントが正しく表示されない原因と対策【font-weight・font-style完全ガイド】

SafariでGoogleフォントが表示されない問題とは?

SafariやiOS端末で「Google Fontsが指定通りに表示されない」「デフォルトフォントになってしまう」と困った経験はありませんか?

以下の画像をご覧ください。

SafariでGoogleフォントが表示されない
左側はデフォルトのサンセリフ体が表示されており、右側は本来意図したフォントの表示です。

本記事では、font-weightfont-styleの指定ミスによるWebフォント崩れの主な原因と、誰でもできる最適なCSS対策方法をわかりやすく解説します。
これを読めば、全ブラウザ対応のGoogleフォント最適化が簡単に実現できます。


【原因】SafariでGoogle Fontsが正しく表示されない理由

safariとchrome

SafariやiOSブラウザは、Google Fontsで複数のfont-weight(太さ)やfont-style(斜体など)を使う場合、font-familyだけの指定ではフォントファイルが正しく適用されないことがあります。
これは、Google Fontsがweightやstyleごとに別ファイルとして配信されているためで、CSS側でもfont-weightとfont-styleを明示する必要があります。

  • ChromeやAndroidでは自動補完される場合が多い
  • SafariやiOSは厳密な一致が必要(特にBold Italic=700iなど)

【よくあるミス】font-weightとfont-style未指定のCSS例

以下のようにfont-familyのみ指定しているCSSは、Safariで正しくGoogleフォントが表示されない主な原因です。

@import url('https://fonts.googleapis.com/css?family=Unna:700i&display=swap');

h2 {
  font-size: 56px;
  font-family: 'Unna', 'Roboto', Arial, "Microsoft Yahei", serif;
}

この場合、SafariやiOS端末では意図しない標準サンセリフ体やシステムフォントが表示されてしまいます。


【正しい対策】font-weightとfont-styleを必ず指定

Google Fontsの「Unna:700i」など特定のweight/styleをインポートした場合、下記のようにfont-weight: 700; font-style: italic;をCSSで明示的に指定してください。

@import url('https://fonts.googleapis.com/css?family=Unna:700i&display=swap');

h2 {
  font-size: 56px;
  font-family: 'Unna', 'Roboto', Arial, "Microsoft Yahei", serif;
  font-weight: 700;
  font-style: italic;
}

こうすることで、Safari、Chrome、Android、iOSなど全てのブラウザでGoogleフォントが意図通り表示されます。


【仕組み解説】Google FontsとSafariの挙動

  • Google Fontsはweight/styleごとに別ファイルを生成し配信する仕様
  • CSSで一致するfont-weight/font-styleを指定しないとSafari/iOSで適用されない
  • 複数スタイル・ウェイトを使う場合は、それぞれの組み合わせを正確に指定
  • ChromeやAndroidはやや寛容だが、今後すべてのブラウザで厳密化される可能性あり

よくある質問(FAQ)

Q. font-weightやfont-styleを指定しないとどうなる?

A. SafariやiOSではGoogleフォントが使われず、システム標準フォントに置き換わることがあります。

Q. すべてのGoogle Fontsでこの設定が必要?

A. はい。BoldやItalicを使う場合は、必ず該当するweight/styleを明示してください。

Q. 他のブラウザでも同じ問題が起きる?

A. 特にSafariやiOSが顕著ですが、将来ChromeやEdge等でも同様の仕様になる可能性があります。

Q. 複数のweight/styleを使いたいときは?

A. それぞれインポートし、該当CSS部分でweight/styleを正確に指定してください。


【チェックリスト】Googleフォント崩れ防止のためのポイント

  • Google Fontsインポート時、必要なweight/styleを指定しているか
  • CSS側でも同じfont-weight・font-styleを指定しているか
  • ブラウザごとの表示をテストしたか
  • モバイルとPC両方で確認したか

まとめ

  • 今後のWeb制作では、font-familyだけでなくfont-weight・font-styleも必ずセットで記述すること
  • SafariでGoogleフォントが正しく表示されない主な原因はfont-weight・font-styleの指定漏れ
  • 正しい指定方法を守れば、全ブラウザ・全端末で美しいWebフォント表示が実現

関連記事
CSSによる絶対中央寄せ
実用性が高い方法順で7種類の実装方法を紹介 最も推奨されるのは Flexbox と Grid transform を使う方法はどんな要素にも応用可能 line-height や table-cell は特定用途向け JavaScript による制御も紹介されている
Details
Details
1ヶ月前
CSSによる絶対中央寄せ
iPhone(iOS Safari)における input タグの角丸問題とその対策
iPhone(iOS Safari)でinputタグに自動で適用される角丸スタイルを無効化する方法を詳しく解説。CSSによるリセットやカスタムスタイルの実装手順を、具体的なコードとともに紹介します。
キウイフルーツ
キウイフルーツ
1ヶ月前
iPhone(iOS Safari)における input タグの角丸問題とその対策
相対パスと絶対パスの使い方
相対パスは、モジュールやディレクトリ内のローカルな参照に適しており、柔軟性があります。一方、絶対パスはウェブサイト全体で共通のリソース(CSS、画像、CDNなど)を参照する際に便利です。両者を理解して使い分けることで、パスのエラーや読み込み不具合を防げます。
Details
Details
1ヶ月前
相対パスと絶対パスの使い方
IT業界の初心者が知っておくべきの用語(2025版)
新しいテクノロジーについて話すとき、時々自分がみんなのペースについていけないと感じることはありませんか?あるいは、その業界にいるのに、自分はまだ十分ではないと感じ、多くの専門用語を理解しなければならないこともあるでしょう。
Details
Details
1ヶ月前
IT業界の初心者が知っておくべきの用語(2025版)
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
日本語フォントはOSにより異なるため、複数のフォントを優先順に指定する。 "Yu Gothic"や"Yu Mincho"はモダンな日本語フォントでWindows 8.1以降に搭載。 "ヒラギノ角ゴ"や"ヒラギノ明朝"はmacOS向けで、高品質。 "メイリオ"や"MS 明朝"などは古いWindows環境にも対応。 ゴシック体はカジュアル・読みやすさ重視、明朝体はフォーマル・高級感重視に適している。
Details
Details
1ヶ月前
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
フッターのJavaScriptは画像読み込みに影響する?ブラウザの読み込み順と最適化の基本
はじめに Webサイトの表示速度や操作感は、単にコンテンツの量や見た目だけでなく、ブラウザがリソースをどのように読み込むかによっても大きく左右されます。特にJavaScriptや画像の読み込み順序、そしてそれらがどのように相互作用しているか […]
解構人
解構人
27日前
フッターのJavaScriptは画像読み込みに影響する?ブラウザの読み込み順と最適化の基本
inputのプレースホルダー(placeholder)の色を変更する
プレースホルダーの色は::placeholder疑似要素で変更可能 IEやEdgeなどの古いブラウザ向けに:-ms-input-placeholder、::-ms-input-placeholderを併用 Firefoxでは透明度の調整のためopacity指定が推奨される
Details
Details
1ヶ月前
inputのプレースホルダー(placeholder)の色を変更する
ユーザーのブラウザに保存されているJavaScript、CSS、画像のキャッシュを削除するにはどうすればいいですか?
ブラウザのキャッシュによる古いJavaScript、CSS、画像の表示を防ぐには、URLにバージョン番号や日時パラメータを付けてリソースを更新する方法が有効です。 毎回タイムスタンプを使うとキャッシュ効果がなくなるため、手動や適切なタイミングでバージョン番号を管理するのがおすすめです。
Details
Details
1ヶ月前
ユーザーのブラウザに保存されているJavaScript、CSS、画像のキャッシュを削除するにはどうすればいいですか?
SCSSの @for ループ(ループ文)
SCSSの @for ループ
無敵の小さな蚊
無敵の小さな蚊
1ヶ月前
SCSSの @for ループ(ループ文)
【CSS & JavaScript & SVG対応】円グラフ(扇形図)のアニメーション表現まとめ
はじめに 円グラフ(パイチャート)は、比率や構成比を視覚的に伝えるのに最適なUIコンポーネントです。最近、業務で使う機会があり、さまざまな方法でエフェクトをつけて表示する実装を試しました。 この記事では、以下の3パターンで実装する方法を紹介 […]
キウイフルーツ
キウイフルーツ
21日前
【CSS & JavaScript & SVG対応】円グラフ(扇形図)のアニメーション表現まとめ
CSSで等間隔配置を実現:1行に複数または複数行に配置
CSSでは、特にレスポンシブデザインにおいて、複数の要素を等間隔に配置する必要があります。列数や間隔を動的に制御することで、柔軟なレイアウトが実現可能です。この記事では、FlexboxとGridの2つの方法を使って、1行に複数のアイテムを等間隔に配置する方法を紹介します。コード内の変数(列数や間隔)を調整することで、1行に表示するアイテム数やその間隔を簡単に管理でき、レイアウト調整が容易になり、開発効率が大幅に向上します。
無敵の小さな蚊
無敵の小さな蚊
25日前
CSSで等間隔配置を実現:1行に複数または複数行に配置
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
本コードは典型的なモバイル用サイドナビゲーションの実装例です。ボタンによる表示切替と、メニュー外クリック検知を組み合わせることで、ユーザー体験を向上させています。さらにESCキーでのメニュー閉鎖も可能にし、アクセシビリティも配慮しています。
Details
Details
1ヶ月前
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
【CSSテクニック】:not()セレクタで階層を跨いだ除外を実現
:not()疑似クラスはCSSでの除外指定に便利ですが、親要素や階層関係に対しては思わぬ制約があります。本記事では、WordPressの投稿構造を例に、インラインコードとコードブロックを正確に区別するためのセレクタ設計を解説します。
無敵の小さな蚊
無敵の小さな蚊
19日前
【CSSテクニック】:not()セレクタで階層を跨いだ除外を実現
scroll-behaviorで平滑スクロール、一行でいけるんだ
一般的に、アンカーリンクをスムーズにスクロールさせる時、JavaScriptやjQueryで実装することが多いです。例えば、 でも実は、CSSだけでもできるんです。そのためのプロパティがこちら: これを書くだけで、リンクをクリックした時にス […]
メモ・ノートスケ
メモ・ノートスケ
1ヶ月前
scroll-behaviorで平滑スクロール、一行でいけるんだ
第1回:ウェブにおける色の基礎(2025年最新版)
ウェブデザインの基礎「色」について、2025年最新トレンドやアクセシビリティ・ダークモード対応まで、実務ですぐ使えるCSS色指定方法を分かりやすく解説。初心者から現場のデザイナーまで必見のカラーマネジメント入門ガイド。
aki0o0
aki0o0
1ヶ月前