React.jsでGoogleフォントを使用する方法


95

React.jswebpackでウェブサイトを構築しました。

WebページでGoogleフォントを使用したいので、セクションにリンクを配置します。

Googleフォント

<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet">

そしてCSSを設定する

body{
    font-family: 'Bungee Inline', cursive;
}

ただし、機能しません。

この問題を解決するにはどうすればよいですか?


1
あなたは<link>あなたの反応アプリではなくページヘッダーに入れますよね?font-familyスタイルシートの他のどこか、または要素に直接指定しますか?
Timo

httpsを使用していますか?また、セキュリティポリシーを設定していますか?
スチュアート

実際、Google Fontsをインポートするための正しい方法を知っています。簡単な例が必要だと思います。あなたは私を助けてくれますか?
Kevin Hsiao

あなたの値下げはどのように見えますか?より一般的なスタイルを上書きする可能性のある他のスタイルを定義していますか?
manonthemat 2016年

私はこの問題を解決しました....以前に試した方法は間違っていました。これが正しい方法です。Googleフォントをローカルで使用する(hjs-webpackおよびReact内)ただし、webpackプロセスにはまだいくつかのエラーがあります。これらの2行のコードは、webpack.config.jsファイルに書き込む必要があります。{ test: /(\.css$)/, loaders: ['style-loader', 'css-loader', 'postcss-loader'] }, { test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000' }
Kevin Hsiao

回答:


83

ある種のメインまたは最初の読み込みCSSファイルでは、次のようにします。

@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:regular,bold,italic&subset=latin,latin-ext');

@ font-faceなどでラップする必要はありません。GoogleのAPIから返される応答は準備ができており、通常のようにフォントファミリーを使用できます。

次に、メインのReactアプリのJavaScriptの上部に次のように記述します。

import './assets/css/fonts.css';

私が実際にしたapp.cssことfonts.cssは、いくつかのフォントのインポートでインポートされた 単に整理するために(今、すべてのフォントがどこにあるかわかっています)。覚えておくべき重要なことは、最初にフォントをインポートすることです。

Reactアプリにインポートするコンポーネントは、スタイルのインポート後にインポートする必要があることに注意してください。特に、それらのコンポーネントが独自のスタイルをインポートする場合も同様です。このようにして、スタイルの順序を確認できます。これが、メインファイルの上部にあるフォントをインポートするのが最善の理由です(問題がある場合は、最終的にバンドルされたCSSファイルを確認して、再確認してください)。

フォントの読み込み時などにGoogle Font APIを渡してより効率的にすることができるいくつかのオプションがあります。公式ドキュメントを参照してください:Google Fonts APIの使用を開始する

編集、注意:「オフライン」アプリケーションを扱っている場合、フォントをダウンロードしてWebpackからロードする必要があるかもしれません。


HTMLヘッドでリンクを使用する方法が機能しない理由を説明していただけますか?
doobean

58

React.jsのGoogleフォント?

スタイルシート、つまりapp.css、style.css(名前)を開きます。問題はありません。スタイルシートを開いてこのコードを貼り付けてください。

@import url('https://fonts.googleapis.com/css?family=Josefin+Sans');

必要なフォントのURLを変更することを忘れないでください。

これを次のように使用します:

body {
  font-family: 'Josefin Sans', cursive;
}

JSでフォントをロードする方が良いのではないですか?私はパフォーマンス上の理由からです。
Simon Franzen、2018年

HTMLヘッドでリンクを使用する方法が機能しない理由を説明していただけますか?
doobean

21

Create React App環境を使用している場合は、@ importルールをindex.cssに追加するだけです。

@import url('https://fonts.googleapis.com/css?family=Anton');

メインのReactアプリにindex.cssをインポートします。

import './index.css'

Reactでは、CSSを適用するために、インラインスタイル、CSSモジュール、またはスタイル付きコンポーネントを選択できます。

font-family: 'Anton', sans-serif;


8

create-react-appのApp.cssなどのCSSファイルにfontfaceインポートを追加します。例えば:

@fontface {
  font-family: 'Bungee Inline', cursive;
  src: url('https://fonts.googleapis.com/css?family=Bungee+Inline')
}

次に、同じcssファイル内のDOM要素にフォントを追加します。

body {
  font-family: 'Bungee Inline', cursive;
}

3
@ font-faceを使用したい場合は、GoogleのFont APIを使用する必要はありません。
トム

しかし、cssファイルでフォントを定義したい場合はどうでしょか。しかし、それでもGoogleのホスティングを活用したいですか?それではそれは必要ではありませんか、それとももっと良い方法がありますか?

5

同じ問題があった。の"代わりに使用していたことがわかりました'

@import url('within single quotes');このように使う

@import url("within double quotes");これは好きじゃない



2

ここでは良い答えのすべてに別のオプションは、NPMパッケージであるreact-google-font-loader、見つけここに

使い方は簡単です:

import GoogleFontLoader from 'react-google-font-loader';

// Somewhere in your React tree:

<GoogleFontLoader
    fonts={[
        {
            font: 'Bungee Inline',
            weights: [400],
        },
    ]}
/>

次に、CSSでファミリ名を使用できます。

body {
    font-family: 'Bungee Inline', cursive;
}

免責事項:私はreact-google-font-loaderパッケージの作者です。


1

(.less)で解決策を探している人がいる場合は、以下を試してください。メインまたは一般的なlessファイルを開き、以下のように使用します。

@import (css) url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');

body{
  font-family: "Open Sans", sans-serif;
}

0

それは可能性が最後にリンクの自己終了タグで、試してみてください。

<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet"/> 

そしてあなたのmain.cssファイルで試してください:

body,div {
  font-family: 'Bungee Inline', cursive;
}

0

ここに、reactアプリにフォントを追加する2つの方法があります。

ローカルフォントの追加

  1. 名前の新しいフォルダを作成しfonts、あなたの中にsrcフォルダを。

  2. Googleフォントをローカルにダウンロードし、fontsフォルダー内に配置します。

  3. index.cssファイルを開き、パスを参照してフォントを含めます。

@font-face {
  font-family: 'Rajdhani';
  src: local('Rajdhani'), url(./fonts/Rajdhani/Rajdhani-Regular.ttf) format('truetype');
}

ここにRajdhaniフォントを追加しました。

これで、このようなcssクラスでフォントを使用できます。

.title{
    font-family: Rajdhani, serif;
    color: #0004;
}

Googleフォントを追加する

ローカルフォントの代わりにgoogleフォント(api)を使用する場合は、次のように追加できます。

@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;500&display=swap');

同様に、タグindex.htmlを使用してファイル内に追加することもできますlink

<link href="https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;500&display=swap" rel="stylesheet">

(最初はhttps://reactgo.com/add-fonts-to-react-app/に投稿されています

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