当前位置:   article > 正文

如何修改element-ui样式 支持按需引入_element-variables

element-variables

通过修改sass变量、class,全局修改element-ui样式。

1.安装sass

1. 查看自己的 node 版本
node -v

2.判断情况
当 node 版本低于 14 时,安装以下两个版本,
    "node-sass": "4.14.0",
    "sass-loader": "7.1.0"

当 node 版本为16x 时,安装以下两个版本
    "node-sass": "6.0.1",
    "sass-loader": "10.2.0"

2.新建一个样式文件

例如 element-variables.scss,写入以下内容:

  1. /* 改变主题色变量 */
  2. $--color-primary: teal;
  3. /* 改变 icon 字体路径变量,必需 */
  4. $--font-path: '~element-ui/lib/theme-chalk/fonts';
  5. @import "~element-ui/packages/theme-chalk/src/index";

3.找到样式文件

node_nodules/element-ui/packages/theme-chalk/src/common/var.scss

找到需要修改的样式,复制到element-variables.scss中。

修改scss变量:

  1. /* 改变主题色变量 */
  2. $--color-primary: red;
  3. /*改变button*/
  4. $--button-font-size:64px;
  5. /* 改变 icon 字体路径变量,必需 */
  6. $--font-path: '~element-ui/lib/theme-chalk/fonts';
  7. @import "~element-ui/packages/theme-chalk/src/index";

4.import scss文件

在main.js中import './styles/element-variables.scss';

5.按需引入

  1. main.js:
  2. import Vue from 'vue'
  3. import App from './App.vue'
  4. import Button from 'element-ui/lib/button';
  5. import './styles/element-variables.scss';
  6. Vue.use(Button)
  7. Vue.config.productionTip = false
  8. new Vue({
  9. render: h => h(App),
  10. }).$mount('#app')
  11. element-variables.scss:
  12. /* 改变主题色变量 */
  13. $--color-primary: red;
  14. /*改变button*/
  15. $--button-font-size:64px;
  16. /* 改变 icon 字体路径变量,必需 */
  17. $--font-path: '~element-ui/lib/theme-chalk/fonts';
  18. @import "~element-ui/packages/theme-chalk/src/button";
  19. babel.config.js:
  20. module.exports = {
  21. presets: [
  22. '@vue/cli-plugin-babel/preset'
  23. ],
  24. "plugins": [
  25. // [
  26. // "component",
  27. // {
  28. // "libraryName": "element-ui",
  29. // "styleLibraryName": "theme-chalk"
  30. // }
  31. // ]
  32. ]
  33. }

如果有修改scss变量无法修改的样式

推荐使用组件化

可以直接覆盖element的class

  1. .el-card{
  2. &__header {
  3. padding: 5px 10px;
  4. }
  5. }
  1. /* 改变主题色变量 */
  2. $--color-primary: red;
  3. /*改变button*/
  4. $--button-font-size:64px;
  5. /* 改变 icon 字体路径变量,必需 */
  6. $--font-path: '~element-ui/lib/theme-chalk/fonts';
  7. @import "~element-ui/packages/theme-chalk/src/button";
  8. @import "~element-ui/packages/theme-chalk/src/card";
  9. @import "./components/el-card.scss"

*/deep/

作用:
当你不想写全局样式,想写scoped局部样式不污染全局,又想更改子组件内的样式,此时就可以用/deep/深度作用选择器.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/82241
推荐阅读