当前位置:   article > 正文

Vue2 ElementUI 更换主题配色_vue2怎么通过elment-ui切换项目主体颜色

vue2怎么通过elment-ui切换项目主体颜色

本文使用 css var 变量结合 vue 动态绑定,更改 link 标签达到更换主题的目的。

主题效果

White 白色主题

  Dark 暗色主题

 Blue 蓝色主题

实现逻辑

1. 在 vue 项目下的 public/style 下创建样式文件,如 global-dark.css

    输入如下内容: 

  1. :root {
  2. --body-background-color: #030324;
  3. --title-text: #c8c8c8;
  4. --light-text-color: #f1f1f1;
  5. --dark-text--color: #1f1f1f;
  6. --selected-active-text: #409eff;
  7. --primary-text-color: #f1f1f1;
  8. --layout-header-color: #2e216c;
  9. --layout-body-color: #272c4d;
  10. --layout-aside-color: #1f2443;
  11. /* 表格 */
  12. --el-table-header-background-color: #2b2b2c;
  13. --el-table-header-text-color: #82827d;
  14. --el-table-border-color: #2b2b2c;
  15. --el-table-body-color: #222325;
  16. --el-table-body-color-hover: #171717;
  17. --el-table-body-text-color: #a0a0a0;
  18. --el-table-tr-hover-color: #80b1f158;
  19. --el-table-tr-bottom-border-color: #80b1f129;
  20. --el-table-border-shadow: none;
  21. }

2. 拷贝 ElementUI 的样式文件 element-ui@2.15.9.css 到路径:src/assets/css。

3. 在 main.js 中引用文件

  1. import ElementUI from 'element-ui';
  2. import './assets/css/element-ui@2.15.9.css';

3. 在 App.vue 中使用 link 标签引入 global-dark.css 文件

  1. <template>
  2. <div id="app">
  3. <link :href="`style/global-${themeMode}.css`" rel="stylesheet" />
  4. <router-view />
  5. </div>
  6. </template>
  7. <script>
  8. import { mapGetters } from 'vuex';
  9. export default {
  10. name: 'App',
  11. components: {},
  12. data() {
  13. return {};
  14. },
  15. computed: {
  16. ...mapGetters(['themeMode'])
  17. },
  18. created() {
  19. console.log('this.themeMode: ', this.themeMode);
  20. },
  21. methods: {}
  22. };
  23. </script>
  24. <style lang="scss"></style>

4. 更改 element-ui@2.15.9.css 中的样式值为 global-dark.css 中的变量

  1. .el-table {
  2. position: relative;
  3. overflow: hidden;
  4. -webkit-box-sizing: border-box;
  5. box-sizing: border-box;
  6. -webkit-box-flex: 1;
  7. -ms-flex: 1;
  8. flex: 1;
  9. width: 100%;
  10. max-width: 100%;
  11. font-size: 14px;
  12. color: var(--el-table-body-text-color);
  13. box-shadow: var(--el-table-border-shadow);
  14. }
  15. .el-table thead {
  16. color: var(--el-table-header-text-color);
  17. font-size: 15px;
  18. font-weight: 70;
  19. }
  20. .el-table thead.is-group th.el-table__cell {
  21. background: var(--el-table-header-background-color);
  22. }
  23. .el-table .cell {
  24. -webkit-box-sizing: border-box;
  25. box-sizing: border-box;
  26. overflow: hidden;
  27. text-overflow: ellipsis;
  28. white-space: normal;
  29. word-break: break-all;
  30. line-height: 23px;
  31. padding-left: 10px;
  32. padding-right: 10px;
  33. color: var(--el-table-body-text-color);
  34. }
  35. ...

5. 运行项目即可查看效果

完整项目代码请点击链接:始技小店,有偿获取。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号