如何在 Element 中使用 Font Awesome 5 图标 UI
How to use Font Awesome 5 icons in Element UI
我已经在我的一个 Vue 项目中使用 Element-UI 几天了,今天我意识到框架提供的图标集合非常缺乏。我寻找一种方法将 FontAwesome 5 添加到项目中,然后我按照此处提供的链接和说明进行操作:.
不幸的是,这没有用。这些说明适用于旧版本的 Font Awesome 和 Element UI。
这是我尝试过的:
main.ts
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
[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;
在您的情况下,字体名称似乎不正确。请尝试 Font Awesome 5 Free
。
到目前为止,文档对此还不是很清楚,所以这是我使用的方法。请注意,您导入的文件取决于您使用的是 Font Awesome 5 Free 还是 Pro。
这些示例导入了所有可用的字体,因此请务必注释掉您不打算使用的字体。
Font Awesome 5 免费
将以下 SCSS 添加到您的应用程序中,例如在 App.vue
:
// 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;
}
Font Awesome 5 Pro
将以下 SCSS 添加到您的应用程序中,例如在 App.vue
:
// 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
前缀:
<i class="fas el-icon-fa-check"></i>
或其他地方:
<el-input
v-model="search"
placeholder="Type something"
prefix-icon="fas el-icon-fa-search"
>
</el-input>
如果您只使用一种字体,您可以使用一些额外的样式来消除对前缀的需要:
// 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;
};
我已经在我的一个 Vue 项目中使用 Element-UI 几天了,今天我意识到框架提供的图标集合非常缺乏。我寻找一种方法将 FontAwesome 5 添加到项目中,然后我按照此处提供的链接和说明进行操作:
不幸的是,这没有用。这些说明适用于旧版本的 Font Awesome 和 Element UI。
这是我尝试过的:
main.ts
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
[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;
在您的情况下,字体名称似乎不正确。请尝试 Font Awesome 5 Free
。
到目前为止,文档对此还不是很清楚,所以这是我使用的方法。请注意,您导入的文件取决于您使用的是 Font Awesome 5 Free 还是 Pro。
这些示例导入了所有可用的字体,因此请务必注释掉您不打算使用的字体。
Font Awesome 5 免费
将以下 SCSS 添加到您的应用程序中,例如在 App.vue
:
// 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;
}
Font Awesome 5 Pro
将以下 SCSS 添加到您的应用程序中,例如在 App.vue
:
// 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
前缀:
<i class="fas el-icon-fa-check"></i>
或其他地方:
<el-input
v-model="search"
placeholder="Type something"
prefix-icon="fas el-icon-fa-search"
>
</el-input>
如果您只使用一种字体,您可以使用一些额外的样式来消除对前缀的需要:
// 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;
};