【Element-plus】修改el-input、el-select的样式(代码+教程)

想要实现的效果

修改了focus之后的边框,el-popper(选项)的样式,右边小icon的样式

直接上代码

        <el-select 
          v-model="currentLanguage" 
          autocomplete="off" 
          @change="changeLanguage" 
          :popper-append-to-body="false"
          >
          <el-option
            v-for="item in languageOptions"
            :key="item.value"
            :label="item.label"
            :value="item.value"
            class="select-option"
          >
          <span class="left-label">{{ item.label }}</span>
            <i v-if="item.value === currentLanguage" class="right-icon">
              <el-icon :size="20"><Check /></el-icon>
            </i>
          </el-option> 
        </el-select>

/* select-border */
::v-deep .el-select__wrapper.is-focused {
  box-shadow: 0 0 0 1px #E87722;
}

/* expand-icon */
::v-deep .el-select__caret {
  color: #E87722;
}

/* option-label */
.select-option .left-label {
  float: left;
}

/* option-icon */
.select-option .right-icon {
  float: right; 
  transform: translateX(100%);
}

/* option-hover */
.el-select-dropdown__item.is-hovering {
  color: #fff !important;
  background-color: #E87722;
}

学习如何操作

 可以先看看这篇文章:【浏览器】f12控制台,如何选中click、hover才出现的元素(断点调试)-CSDN博客

还是以el-select来举例,使用断点调试选中元素后,找到需要修改的属性(父级,子级的div都点一下,找找要改的样式在哪里,比如我要改的样式是focus到select框之后的边框颜色改变,没想到el-ui是用box-shadow实现的)

对于el-popper的修改

由于el-popper是在app以外的,所以使用deep也没有办法在<style scoped>中修改到

方案1:在style标签里修改,记得多加一下类名,避免污染全局

<style>
    /* option-hover */
    .一些类名 .el-select-dropdown__item.is-hovering {
      color: #fff !important;
      background-color: #E87722;
    }
</style>

方案2:

在 el-select 中添加 :popper-append-to-body="false" 属性,然后就可以直接在<style scoped>中写样式了(不需要deep)

        <el-select 
          v-model="currentLanguage" 
          autocomplete="off" 
          @change="changeLanguage" 
          :popper-append-to-body="false"
          >
          <el-option
            v-for="item in languageOptions"
            :key="item.value"
            :label="item.label"
            :value="item.value"
            class="select-option"
          >
          <span class="left-label">{{ item.label }}</span>
            <i v-if="item.value === currentLanguage" class="right-icon">
              <el-icon :size="20"><Check /></el-icon>
            </i>
          </el-option> 
        </el-select>

根据引用\[1\]中提到的问题,可以通过修改样式代码来设置element-plus的el-select长度。引用\[2\]中给出了一个示例的样式代码,其中可以通过修改.el-input__wrapper的padding属性来调整el-select的长度。另外,还可以通过设置.el-select-dropdown__item的margin属性来调整下拉选项的宽度。这样可以根据需要来自定义el-select的长度。 另外,引用\[3\]中提到了element-plus的el-select组件有一个属性叫做fit-input-width,可以将下拉框的宽度设置为与输入框的宽度相同。这样可以确保el-select的长度与输入框的长度一致。 综上所述,可以通过修改样式代码或使用fit-input-width属性来设置element-plus的el-select长度。 #### 引用[.reference_title] - *1* [element-plus的el-select实现触底加载更多(新版本报错踩坑)](https://blog.csdn.net/qq_21473443/article/details/131169526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [element-plus修改el-select下拉框的位置](https://blog.csdn.net/qq_43651168/article/details/130712253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值