首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在元素UI中使用字体5图标

如何在元素UI中使用字体5图标
EN

Stack Overflow用户
提问于 2019-02-10 13:45:26
回答 1查看 7.3K关注 0票数 2

我在Vue项目中使用Element已经有几天了,今天我意识到框架提供的图标集合非常缺乏。我寻找了一种将FontAwesome 5添加到项目中的方法,并遵循了这里提供的链接和说明:Element-UI and Font Awesome

不幸的是,那不起作用。这些说明是针对较早版本的字体、Awesome和Element UI的。

以下是我尝试过的:

main.ts

代码语言:javascript
复制
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
import VueSweetalert2 from 'vue-sweetalert2';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import '@/assets/scss/tailwind.scss';
import axios from 'axios';
import VueAxios from 'vue-axios';
import '@/assets/scss/main.scss';

Vue.config.productionTip = false;
Vue.config.devtools = true;

Vue.use(ElementUI);
Vue.use(VueSweetalert2);
Vue.use(VueAxios, axios);

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app');

main.scss

代码语言:javascript
复制
[class^="el-icon-fa"],
[class*=" el-icon-fa"] {
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome !important;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

@import url('../../../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss');
@fa-css-prefix: el-icon-fa;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-06 21:45:50

在您的示例中,字体名称看起来不正确。试一试Font Awesome 5 Free

到目前为止,这方面的文档还不太清楚,下面是我使用的方法。请注意,您导入的文件取决于您是使用字体Awese5Free还是Pro。

这些示例导入所有可用的字体,所以请确保注释掉了不使用的内容。

字体免费5

将以下SCSS添加到应用程序中,例如在App.vue

代码语言:javascript
复制
// Import Font Awesome 5 Free
$fa-css-prefix: 'el-icon-fa';
$fa-font-path: '~@fortawesome/fontawesome-free/webfonts';

@import '~@fortawesome/fontawesome-free/scss/fontawesome.scss';
@import '~@fortawesome/fontawesome-free/scss/regular.scss';
@import '~@fortawesome/fontawesome-free/scss/solid.scss';
@import '~@fortawesome/fontawesome-free/scss/brands.scss';

// Override Element UI's icon font
.fas {
  font-family: 'Font Awesome 5 Free' !important;
}

.fab {
  font-family: 'Font Awesome 5 Brands' !important;
}

字体Awese5Pro

将以下SCSS添加到应用程序中,例如在App.vue

代码语言:javascript
复制
// Import Font Awesome 5 Pro
$fa-font-path: '~@fortawesome/fontawesome-pro/webfonts';
$fa-css-prefix: 'el-icon-fa';

@import '~@fortawesome/fontawesome-pro/scss/fontawesome.scss';
@import '~@fortawesome/fontawesome-pro/scss/light.scss';
@import '~@fortawesome/fontawesome-pro/scss/regular.scss';
@import '~@fortawesome/fontawesome-pro/scss/solid.scss';
@import '~@fortawesome/fontawesome-pro/scss/brands.scss';

// Override Element UI's icon font
.fal,
.far,
.fas {
  font-family: 'Font Awesome 5 Pro' !important;
}

.fab {
  font-family: 'Font Awesome 5 Brands' !important;
}

现在你可以用它们作为图标了。请注意,仍然需要fas|fal|fal|fab前缀:

代码语言:javascript
复制
<i class="fas el-icon-fa-check"></i>

或其他地方:

代码语言:javascript
复制
<el-input
  v-model="search"
  placeholder="Type something"
  prefix-icon="fas el-icon-fa-search"
>
</el-input>

如果您只使用一种字体,则可以使用其他样式消除对前缀的需求:

代码语言:javascript
复制
// Use Font Awesome icons without a prefix
[class^="el-icon-fa"],
[class*=" el-icon-fa"] {
  font-family: 'Font Awesome 5 Free' !important; // Change this to 'Font Awesome 5 Pro' for pro
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  font-size: inherit;
  text-rendering: auto;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54617007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档