React.jsとwebpackでウェブサイトを構築しました。
WebページでGoogleフォントを使用するため、セクションにリンクを配置します。
<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet">
body{
font-family: 'Bungee Inline', cursive;
}
ただし、機能しません。
この問題を解決するにはどうすればよいですか?
ある種のメインまたは最初にロードする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を渡して、フォントのロード時などの効率を高めることができるオプションがいくつかあります。公式ドキュメントを参照してください。 https://developers.google.com/fonts/docs/getting_started
編集、注:「オフライン」アプリケーションを扱っている場合、実際にフォントをダウンロードしてWebpackからロードする必要があります。
スタイルシート、つまりapp.css、style.css(あなたが持っている名前)を開きます、それは問題ではありません、スタイルシートを開いてこのコードを貼り付けてください
@import url('https://fonts.googleapis.com/css?family=Josefin+Sans');
そして、あなたが望むフォントのURLを変更することを忘れないでください
これを次のように使用します:
body {
font-family: 'Josefin Sans', cursive;
}
Create React App環境を使用している場合は、@ importルールをindex.cssに追加するだけです。
@import url('https://fonts.googleapis.com/css?family=Anton');
インポートindex.cssメインReactアプリで:
import './index.css'
Reactでは、CSSを適用するために、インラインスタイル、CSSモジュール、またはスタイルコンポーネントを選択できます。
font-family: 'Anton', sans-serif;
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;
}
このチュートリアルが表示されます: https://scotch.io/@micwanyoike/how-to-add-fonts-to-a-react-project
import WebFont from 'webfontloader';
WebFont.load({
google: {
families: ['Titillium Web:300,400,700', 'sans-serif']
}
});
私はこの方法を試しましたが、非常にうまく機能していると言えます;)
同じ問題があった。 "
ではなく'
を使用していたことがわかりました。
このように@import url('within single quotes');
を使用します
このような@import url("within double quotes");
ではない
ここでのすべての適切な答えに対する別のオプションは、npmパッケージreact-google-font-loader
で、 here が見つかりました。
使い方は簡単です:
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
パッケージの作成者です。