Element-ui之修改样式

Posted 天使猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Element-ui之修改样式相关的知识,希望对你有一定的参考价值。

修改样式的方法

  1. 官网上面介绍了几种方法
  2. 当然还有其他的方法,比如:
    • 直接在标签上面采用行内式;
    • 在组件中的style里面添加样式;
    • 引入.scss文件(注意:如果是公用样式最好在index.scss一起引用,然后在main.js中进行调用;如果使用该样式的组件不多,就按需引入,不要引入其他不必要的scss文件

      注:这儿的优先级是: [行内的样式>组件中\'style\'里面的样式>引入的scss样式], 如果是从外部引入的scss样式,当修改的标签样式是由多个class共同作用时(如下图),必须加上!important才会生效


3. 在真正的项目中直接在组件中的style中添加样式并不好维护(除非真的是本组件特有的样式),因为很多时候,同一个样式会利用在项目中的很多地方,比如一个后台的所有按钮风格都要一样,我们也不可能每一个都去设置一下样式,如果突然感觉颜色不对,岂不是要每个文件的去修改了,而且有些样式的设置通过这种方式也未必有效(当然其他名字的scss也会有同样的问题,并不总是有效的
4. 所以我们直接采用element-variables.scss的方法,在src目录下创建common->styles->element-variables.scss目录;

基本设置

  1. 首先要对引入的element-variables.scss进行基本设置
$--font-path: \'~element-ui/lib/theme-chalk/fonts\';
@import "~element-ui/packages/theme-chalk/src/index";

  1. 然后我们就可以快乐的开始修改样式啦!

修改默认颜色

  1. Element-ui的默认颜色是鲜艳、友好的蓝色,当我们需要修改整体风格的颜色时,只需要在element-variables.scss里添加一条简单的代码,$的这种写法是scss里对变量的修饰符。

修改el-button的样式

  1. 在处理其他组件的样式,我们通常不会直接进行修改,而是通过交集选择器的方式限定范围(如果需要将el-button的各种状态下的样式都修改,请按照下面的顺序,这和<a>标签是相同的道理)
.add {
  &.el-button {
    background-color: #666 !important;
    border-color: #666 !important;
  }
  &.el-button:focus {
    background-color: #999 !important;
    border-color: #999 !important;
  }
  &.el-button:hover {
    background-color: #aaa !important;
    border-color: #aaa !important;
  }
  &.el-button:active {
    background-color: #eee !important;
    border-color: #eee !important;
  }
}
  1. 在组件里面进行使用
    • 这种作用域全局的样式,最好统一在index.scss中引用,然后在main.js引入index.scss
<style rel="stylesheet/scss" lang="scss" scoped>
    @import "~@/common/styles/element-variables.scss";
</style>
* 然后在`el-button`中的加上对应的class便可
    <el-button class="add">添加</el-button>
  1. 最终效果如下

以上是关于Element-ui之修改样式的主要内容,如果未能解决你的问题,请参考以下文章

vue 项目全局修改element-ui的样式

(Select)解决:Element-ui 中 Select 选择器下拉框样式及输入框样式的修改问题(背景色透明与悬停背景色变化与下拉框边距变化等操作)

基于Vue和Element-UI中Select 选择器的分组全选以及样式修改问题

修改element-ui dialog样式

element-ui默认样式修改

项目中如何修改element-ui的默认样式 (去除scoped,样式穿透 >>> , less/sass : /deep/)