reactjs - 如何在反应 direflow 应用程序中导入本地字体(woff)
问题描述
我在 Direflow 反应应用程序中加载本地 woff 字体时遇到问题
这是我的示例代码
font.tsx
import {createGlobalStyle} from 'styled-components';
export default createGlobalStyle`
@font-face{
font-family:'27 Sans';
src: local('27 Sans'), local('27Sans'),
url('./27Sans-Light.woff') format('woff'),
font-weight:300;
font-style:normal;
}`;
in app.tsx
import GlobalFonts from "./../../fonts/fonts";
const App: FC<IProps> = (props) => {
return (
<GlobalFonts />
);
}
app.css
.content {
font-family: 27Sans;
}
仍然无法使用字体请建议使用材料 UI 的 direflow 反应应用程序
解决方案
在您的 React 项目中,在您的 src 文件夹中创建一个文件夹并将其命名为“fonts”。在此文件夹中创建一个名为 fonts.js 的文件 - 这将包含您的字体的导入,稍后将使其可用于您的应用程序的其余部分。
在同一个文件夹中,现在放置您刚刚下载的两个字体文件。这将使您的应用程序可以访问它们以正确导入它们。完成此操作后,您的文件结构应如下所示:
在你的 fonts.js 文件中,从 'styled-components' 导入 { createGlobalStyle }。这是一个方便的小帮手,可以在您的应用中处理全局 css 样式。如果您想深入了解,请访问样式化组件文档上的 createGlobalStyle。之后,您必须将字体导入文件并在 font-face 声明中声明它们。
import { createGlobalStyle } from 'styled-components';
import NameOfYourFontWoff from './nameOfYourFont.woff';
import NameOfYourFontWoff2 from './nameOfYourFont.woff2';
export default createGlobalStyle`
@font-face {
font-family: 'Font Name';
src: local('Font Name'), local('FontName'),
url(${NameOfYourFontWoff2}) format('woff2'),
url(${NameOfYourFontWoff}) format('woff');
font-weight: 300;
font-style: normal;
}
`;
在 App.js 文件的顶部,导入 React 后,写
import GlobalFonts from './fonts/fonts';
// assuming you places fonts in your src folder as described above.
在 App.js 文件中的某处,最好是在通常包含站点布局或类似内容且不需要任何字体样式的普通样式组件下方,将 GlobalFonts 组件放置在您的渲染返回中:
render() {
return (
<Wrapper>
<GlobalFonts />
// ...
</Wrapper>
);
}
完成此操作后,您可以随意在样式中的任何位置使用您的字体。在任何样式组件文件中,只需声明(例如):
const AwesomeHeadline = styled.h1`
font-family: 'Font Name';
`;
export default AwesomeHeadline;
推荐阅读
- php - Rails 中的脏方法等效于 PHP Codeignitor
- php - 从 Laravel factory() 获得意外响应导致分段错误(核心转储)
- python - 如何在文本中查找字符串并从文本中返回字符串?
- java - 如何将 CSV 文件数据存储到 Java 中的数组中?
- ios - 如何在 Swift 的 1 个字节上编码扩展的 ASCII/macOS Roman(字符从 128 到 255)?
- python - 根据特定键合并2个字典列表
- vb.net - 如何在 ESC/POS 打印机上打印阿拉伯语
- javascript - 在 a 中添加一个属性如果属性有值
- kubernetes - 如何将 yaml configmap 文件转换为 terraform
- c# - Diagnostic display apear on open the add-in