【element UI】修改 el-select 下拉框样式

前言

项目中经常使用到 el-select 组件,默认的 el-select 组件样式不符合项目实际需要,需要进行样式修改,这里记录下样式的修改步骤。
借鉴文章:https://blog.csdn.net/qq_26695613/article/details/127870263

实现过程

官方文档里有该属性 popper-append-to-body
image
1、 在使用到 el-select 组件的过程中设置该属性为 false

     <el-select
          v-model="value"
          :popper-append-to-body="false"
          placeholder="请选择"
      >
        <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value">
        </el-option>
      </el-select>

2、 样式修改

<style lang="scss" scoped>
//修改的是el-input的样式

//一种方法是设置最里层el-input__inner的背景色 外层的两级父元素设置为透明色

//另一种方法是从el-select到el-input__inenr的背景色都设置为需要的颜色

::v-deep .el-select,
::v-deep .el-input,
::v-deep .el-input__inner{
  border-radius: 10px;
  color:#fff;
  //border: 1px solid green;
  border-radius:0px;
  border-color:green;
  text-align: center;
}

//el-input聚焦的时候 外层的border会有一个样式
::v-deep .el-select .el-input.is-focus .el-input__inner{
  //border:0px;
  border: 1px solid green;
}

//修改的是el-input上下的小图标的颜色

::v-deep .el-select .el-input .el-select__caret{
  color: green;

}

//修改总体选项的样式 最外层

::v-deep .el-select-dropdown{
  //rgba(87,133,87,0.8)
  background: rgba(87, 133, 87, 0.78);
  //margin: 0px;
  border:0px;
  //border-radius: 0px;
  //left: 0px !important;

}

//修改单个的选项的样式

::v-deep .el-select-dropdown__item{
  background-color: transparent;
  color:#fff;
}

//item选项的hover样式

::v-deep .el-select-dropdown__item.hover,

::v-deep .el-select-dropdown__item:hover{
  color: rgb(21, 94, 38);
  background: rgba(87, 133, 87, 0.3);
}

//修改的是下拉框选项内容上方的尖角
::v-deep .el-popper .popper__arrow, .el-popper .popper__arrow::after{
  display: none;
}
</style>

3、 实现效果
image

posted @ 2023-04-02 12:57  三勺  阅读(4310)  评论(0编辑  收藏  举报