【发布时间】:2020-05-31 17:06:23
【问题描述】:
我在 create-react-app 中使用 jPlayer example。这是一个 CodeSandbox,显示了字体真棒图标呈现为框的问题。
图标通过 css 规则呈现,将内容指定为带有 fa 类的 <i> 标记的 unicode。
我安装了 jPlayer 示例的 package.json 中的 font-awesome 依赖项。然后,我实现了一个 AudioPlayer 组件并使用了 jPlayer 提供的皮肤。组件渲染了但是图标都是框,我可以在源码中看到unicode内容。
这是项目架构的示例。这是/src/AudioPlayer/AudioPlayer.jsx中的播放按钮。
<Play><i className="fa">{/* Icon set in css */}</i></Play>
然后,AudioPlayer 被导入App.jsx。 App.jsx 导入具有此相关规则的样式表:
.fa, .fas, .far {
font-family: FontAwesome !important;
}
App.jsx 然后由index.js 渲染。在index.js 中,我们导入音频播放器的样式表:
// Styles the jPlayer to look nice
import 'react-jplayer/dist/css/skins/sleek.min.css';
// Styles Play/Pause/Mute etc when icons (<i />) are used for them
import 'react-jplayer/dist/css/controls/iconControls.min.css';
iconControls.css 中播放按钮的规则如下所示:
.jp-jplayer .jp-icon-controls .jp-play i:before {
content: "\F04B";
font-family: 'Font Awesome\ 5 Free';
font-weight: 900;
}
然后在index.html 的head 中,我将字体真棒CDN 包括作为修复正在呈现的框而不是字体真棒图标的最后尝试。
【问题讨论】:
-
记得在点击提交按钮后查看您的帖子,以防万一您的降价格式错误。你做了什么。很容易修复,但其他人不应该为你这样做。
-
抱歉,我没有看到格式错误
-
你有正确使用块格式的代码块,然后你有使用内联格式的代码块,所以不是一个很好的“多行代码”的全宽块,它只是段落文本。
-
哦,我明白了,jPlayer 样式表的导入是逐行的。
-
你的多行 CSS 也应该是一个块。请记住,这不是 github,所以有 its own markdown rules。还有更多 "asking a good question" 注意:请不要让别人克隆你的项目,你有责任确保你的帖子包含所有必要的细节,以便对你遇到的问题做出明智的评论,所以你可能需要改为形成minimal reproducible example。尤其是因为您的代码不会很快就会出现这个问题,所以该链接很快就会对网站的未来访问者毫无用处,他们会以与您相同的方式寻找答案。
标签: css reactjs unicode font-awesome