我用 React.js 和 webpack 构建了一个网站。
我想在网页中使用 Google字体,因此我将链接放在该部分中。
<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet">
body{
font-family: 'Bungee Inline', cursive;
}
然而,它不起作用。
我该如何解决这个问题?
答案 0 :(得分:42)
在某种主要或第一个加载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
编辑,注意:如果您正在处理&#34;离线&#34;应用程序,那么你可能确实需要下载字体并通过Webpack加载。
答案 1 :(得分:33)
打开你的样式表,即app.css,style.css(你有什么名字),没关系,只需打开样式表并粘贴这段代码
@import url('https://fonts.googleapis.com/css?family=Josefin+Sans');
并且不要忘记更改您想要的字体的URL,否则正常工作
并将其用作:
body {
font-family: 'Josefin Sans', cursive;
}
答案 2 :(得分:11)
如果您正在使用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;
答案 3 :(得分:5)
在CSS文件中,例如create-react-app中的App.css,添加字体导入。例如:
@fontface {
font-family: 'Bungee Inline', cursive;
src: url('https://fonts.googleapis.com/css?family=Bungee+Inline')
}
然后只需将字体添加到同一个css文件中的DOM元素。
body {
font-family: 'Bungee Inline', cursive;
}
答案 4 :(得分:4)
您应该看到本教程: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']
}
});
我刚尝试过这种方法,我可以说它的效果非常好;)
答案 5 :(得分:3)
有同样的问题。事实证明我使用的是"
而不是'
。
像这样使用@import url('within single quotes');
不是@import url("within double quotes");
喜欢这个
答案 6 :(得分:3)
有两种方法可以将字体添加到React应用。
在您的fonts
文件夹中创建一个名为src
的新文件夹。
从本地下载google字体,并将其放在fonts
文件夹中。
打开您的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字体(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">
答案 7 :(得分:2)
答案 8 :(得分:1)
这里所有好的答案的另一个选择是here中找到的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
软件包的作者。
答案 9 :(得分:1)
如果任何人希望使用(.less)解决方案,请尝试以下方法。打开您的主文件或通用文件,并按如下所示使用。
@import (css) url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');
body{
font-family: "Open Sans", sans-serif;
}
答案 10 :(得分:0)
在某些情况下,您的字体资源可能在项目目录中的某个位置。 因此您可以使用SCSS这样加载它
$list: (
"Black",
"BlackItalic",
"Bold",
"BoldItalic",
"Italic",
"Light",
"LightItalic",
"Medium",
"MediumItalic",
"Regular",
"Thin",
"ThinItalic"
);
@mixin setRobotoFonts {
@each $var in $list {
@font-face {
font-family: "Roboto-#{$var}";
src: url("../fonts/Roboto-#{$var}.ttf") format("ttf");
}
}
}
@include setRobotoFonts();
答案 11 :(得分:-1)
可能是最后链接的自动关闭标记,请尝试:
getOneDSliders(): void {
this.simXService.getOneDSliders()
.then(sliders => {
this.onedsliders = sliders;
});
}
并在你的main.css文件中尝试:
<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet"/>