修改el-select下拉框的高度

本文介绍了如何在Element UI的el-select组件中添加代码调整下拉框高度,并尝试了不同方式覆盖`eloption`类的样式,探讨了为何局部样式在 scoped 中未生效的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给el-select添加如下图红框中的两行代码。

  

                 <el-select
                    @change="currentSel($event, key)"
                    v-model="item.item_id"
                    placeholder="请选择"
                    clearable
                    popper-class="eloption"
                    :popper-append-to-body="true"
                  >
                    <el-option
                      v-for="ii in inspectionItems"
                      :key="ii.id"
                      :label="ii.itemName"
                      :value="ii.id"
                    >
                    </el-option>
                  </el-select>

     找到控制下拉框高度的class类,然后在全局中覆盖掉该类。eloption是el-select设置的popper-class的值。.el-select-dropdown__wrap是控制下拉框高度的。(重写框架样式最好是在scoped里面局部修改,但是不知道为何不生效)

  

<style >
    .eloption .el-select-dropdown__wrap {
      background-color: bisque !important;
      max-height: 350px !important;
    }
</style>

 像下面这个写法就不生效,但是没有找到不生效的原因


<style scoped>
/* 不生效 */
.eloption /deep/  .el-select-dropdown__wrap {
  background-color: bisque !important;
  max-height: 350px !important;
}
/* 不生效 */
.eloption >>>  .el-select-dropdown__wrap {
  background-color: bisque !important;
  max-height: 350px !important;
}
</style>

 修改后的样式

      

### 调整 Element UI `el-select` 下拉框高度的方法 Element UI 的 `el-select` 组件默认情况下会自动计算下拉菜单的高度,这通常基于选项的数量。然而,在某些场景中可能需要自定义这个高度。 当遇到样式穿透问题时,可以通过调整组件的内部结构和 CSS 属性来实现目标效果。对于 `el-select` 下拉框高度的调整,有几种方法可以尝试: #### 方法一:使用 `popper-append-to-body` 如果发现修改样式不起作用,原因可能是由于 `el-select` 的下拉列表默认是附加到 body 上而不是父容器内的[^1]。此时应考虑将 `popper-append-to-body` 设置为 false 来改变这一行为。不过需要注意的是,这样做可能会导致其他布局上的变化,比如位置偏移等问题。因此还需要进一步调整定位方式以及 top 和 left 值以确保下拉框能够正确显示在预期的位置上。 ```html <template> <div class="custom-select"> <el-select v-model="value" popper-append-to-body=false style="width: 200px;"> <!-- options here --> </el-select> </div> </template> <style scoped lang="scss"> .custom-select /deep/ .el-select-dropdown { max-height: 300px; /* 自定义最大高度 */ } </style> ``` #### 方法二:直接覆盖样式 另一种更简单的方式是在全局或局部范围内强制应用新的样式规则给 `.el-scrollbar__wrap` 类名下的元素,从而控制滚动条包裹的内容区域的最大高度,并配合 overflow-y:hidden|auto 控制溢出部分的行为。 ```css /* 全局CSS文件中 */ .el-select-dropdown__wrap { max-height: 300px !important; overflow-y: auto !important; } /* 或者在单个页面内 */ <style scoped> /deep/.el-select-dropdown__wrap { max-height: 300px !important; overflow-y: auto !important; } </style> ``` 以上两种方案都可以有效地解决 `el-select` 下拉框高度不可控的问题。具体采用哪种取决于实际应用场景和个人偏好。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值