python - 如何在 Dash Python 中使用本地字体(.otf 文件)
问题描述
我目前正在做一个项目,我必须在 Dash 应用程序中包含自定义字体。我收到了 .otf 文件,但我不知道如何使用它。经过一段时间的安静搜索,我希望你们能帮助我。
import dash
import dash_html_components as html
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, prevent_initial_callbacks=True, external_stylesheets=external_stylesheets)
app.layout = html.Div([
html.P('Hello world'),
])
if __name__ == "__main__":
app.run_server(debug=True,port=8050)
.otf 文件位于文件夹“/assets/fonts”中。我看过一些关于这个主题的帖子,我应该在其中创建一个 .css 文件并将其添加到 external_stylesheets 中,但我不确定如何执行此操作,即使它会起作用。
无论如何,提前谢谢!
解决方案
这真的很简单!你在正确的轨道上。正如您所说,您所要做的就是使用.css
位于本地(相对于您的app.py
文件;即同一目录)“资产”目录中的文件。
下面我设置了以下基本的应用程序文件结构:
.
|-- app.py
`-- assets
|-- FreeSerifItalic-KErA.otf
`-- custom.css
1 directory, 3 files
我有一个.otf
要在.assets/
文件夹下使用的本地字体文件。以下是custom.css
文件的内容,也位于我的 assets/ 文件夹下:
@font-face {
font-family: 'FreeSerif-Italic';
src: url('FreeSerifItalic-KErA.otf');
}
body {
margin: 10%;
overflow-x: hidden;
text-align: center;
font-family: "FreeSerif-Italic";
font-size: 2.5rem;
}
我使用@font-face
CSS3 功能正确导入字体以供使用,方法是为其提供参考名称“FreeSerif-Italic”。我将body
我的应用程序的元素定义为默认为所有文本使用此字体(您不必为 body 元素使用字体,您可以将它用于您想要的任何 html 元素!;您也可以在您的app.py 使用style
任何dash.html
组件的参数破折号代码)。
在这里,我有一个非常简单的app.py
文件,(几乎)就像您的示例一样:
import dash
from dash import html
app = dash.Dash(__name__)
app.layout = html.Div([html.P("Hello world")])
if __name__ == "__main__":
app.run_server(debug=True, dev_tools_hot_reload=True)
当运行 ( '$ python app.py'
) 时,给出:
推荐阅读
- laravel - Laravel 调度器任务动态
- dpdk - X722 NIC 的 DPDK 18.11 硬件校验和支持?
- php - DTO和php7.4内部的关系:如何补水?
- java - Java 流的返回值
- angular - 是否有可以在 Ionic5/Angular9 PWA 应用程序中使用的 SignaturePad?
- java - While 循环中的 Thread.sleep()
- python-3.x - 仅使用一个 for 循环从列表列表创建字典
- java - 将 Unicode 十六进制字符解码为其字符串表示形式
- amazon-s3 - 存储对象时需要元数据存储
- java - 使用 GCP PubSub 的 Spring Cloud Stream 消费者的退避策略