elementui 样式修改 ---el-button && el-select

如果在全局样式下修改elementui样式则不需要穿透,在scoped下要穿透

css 使用 >>>
less 使用 /deep/
scss 使用 ::v-deep

1.el-button---按钮

<el-button icon="el-icon-search" class="common-el-button">搜索</el-button>
​
<el-button class="common-el-button">
      <span>搜索</span>
      <i class="el-icon-search el-icon--right"></i>
</el-button>
​
.common-el-button {
  width: 5rem; // 调整宽度
  height: 2rem; // 调整高度
  background: #339274; // 背景
  color: #52e6bb; //字体颜色
  border-radius: 20px; //圆角
  border: 0; //边框
  font-size: 16px; //字体大小
  //---- 按钮文字且图标垂直水平居中----
  display: flex;
  align-items: center;
  justify-content: center;
  ::v-deep span {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  //-------------------------
  // 修改图标样式
   ::v-deep .el-icon-search{
    color: brown;
  }
  //鼠标悬浮
  &:hover {
    background: #f78336;
    color: #52e6bb;
    border: 0;
  }
  //伪类向激活(在鼠标点击与释放之间发生的事件)的元素添加特殊的样式
  &:active {
    background: #f78336;
    color: #52e6bb;
    border: 0;
  }
  //获得焦点时的样式
  &:focus {
    background: #f78336;
    color: #52e6bb;
    border: 0;
  }
}

2.el-select 下拉框

<el-select
      popper-class="common-el-select-pannel"
      class="common-el-select"
      v-model="value"
      clearable
      placeholder="请选择"
    >
      <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.label"
        :value="item.value"
      >
      </el-option>
</el-select>
//选择框内的样式
.common-el-select {
  width: 6rem; // 调整宽度
  ::v-deep .el-input {
    .el-input__inner { //选择宽内样式修改
      height: 30px; //调整高度
      background: aquamarine; //选择框背景框
      color: cadetblue; //选择框字体颜色
      font-size: 12px; //选择框内字体大小
      font-weight: 500;
      border: 1px solid cadetblue;
      &:focus{
        border: 1px solid red;
      }
      //placehoder样式修改
      &::-webkit-input-placeholder{
        color: blue;
      }
    }
    .el-input__suffix {
      .el-input__suffix-inner {
        .el-select__caret { // 修改右侧图标样式
          height: 100%; 
          line-height: 100%;
          color: yellowgreen;
        }
      }
    }
  }
}
​
//选择面板样式 该样式不能写在scoped内
//不能添加scoped,是因为 el-popper与app.vue同级,所以在页面上直接改样式是改动不了的,可以新加个非scoped的<style></style>或放在全局css样式中;
.common-el-select-pannel {
  background: aquamarine !important; //选择面板背景色
  .el-scrollbar {
    .el-select-dropdown__wrap {
      .el-select-dropdown__list {//选择列表
        .el-select-dropdown__item {//列表行
          font-size: 12px;
          color: blueviolet;
        }
        .el-select-dropdown__item.hover {//列表行鼠标悬浮
          background: aqua;
          color: blueviolet;
        }
        .el-select-dropdown__item.selected {//已选中列表行
          color: rebeccapurple;
        }
      }
    }
  }
}
​
​

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你使用了el-select的multiple属性进行单选或多选,然后想要实现点击编辑后回显的功能,可以通过以下步骤实现: 1. 给el-select绑定一个v-model,用来存储选择的值。 2. 在点击编辑按钮后,将v-model中的值赋给一个临时变量,用来记录编辑前的选择结果。 3. 将el-select的multiple属性设置为false,变为单选状态。 4. 将临时变量的值赋给el-select的v-model,将选择结果回显到el-select中。 5. 编辑完成后,将el-select的v-model的值赋给临时变量,并将multiple属性设置回原来的状态。 下面是一个简单的示例代码: ```html <template> <div> <el-select v-model="selected" multiple> <el-option label="Option 1" value="1"></el-option> <el-option label="Option 2" value="2"></el-option> <el-option label="Option 3" value="3"></el-option> </el-select> <el-button @click="edit">编辑</el-button> </div> </template> <script> export default { data() { return { selected: [], // 存储选择结果的数组 tempSelected: [] // 临时存储编辑前的选择结果的数组 } }, methods: { edit() { // 记录编辑前的选择结果 this.tempSelected = [...this.selected] // 将multiple属性设置为单选 this.$refs.select.multiple = false // 将选择结果回显到el-select中 this.selected = this.tempSelected[0] }, done() { // 将编辑后的结果赋给临时变量 this.tempSelected[0] = this.selected // 将multiple属性设置回原来的状态 this.$refs.select.multiple = true } } } </script> ``` 在上面的代码中,我们在el-select上加了一个ref属性,用来在代码中获取el-select的DOM元素,然后在edit方法中,将el-select的multiple属性设置为false,变为单选状态,并将临时变量的值赋给el-select的v-model,实现了回显选择结果的功能。在done方法中,将编辑后的结果赋给临时变量,并将multiple属性设置回原来的状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值