解决Vue中设置el-select的高度不生效问题

 el-select是Element UI框架中的一个选择器组件,它允许用户从多个选项中选择一个或多个项目。但这里确存在一个小坑,我们可以看到直接修改el-select的高度是无法生效的

<template>
  <div id="login">
      <el-select v-model="role">
        <el-option label="管理员" value="admin"></el-option>
        <el-option label="教师" value="teacher"></el-option>
        <el-option label="学生" value="student"></el-option>
      </el-select>
    </div>
</template>

<style lang="scss" scoped>
  .el-select{
    height: 50px !important;
  }
</style>

其实要想修改下拉框的高度,必需要修改内部的css样式

我们使用浏览器可以看到下拉框内部有一个类el-select-wrapper,

Vue 2.x 提供的/deep/关键字穿透组件的作用域,以影响子组件的样式

    .el-select /deep/ .el-select__wrapper{
      height: 50px;
    }

:Vue 2.6+ 到Vue 3 初期提供了全新的穿透样式关键字::v-deep,修改样式

    ::v-deep .el-select .el-select__wrapper{
      height: 50px;
    }

在最新的 Vue 3 和构建工具(如 Vite)中,::v-deep 的用法已经被视为过时,推荐使用 :deep() 伪类来代替。

    :deep(.el-select .el-select__wrapper){
      height: 50px;
    }

 

至此el-select的高度修改成功 

### 设置 Element UI `el-select` 下拉选择器组件的高度 对于希望调整或设置 Element UI 中 `el-select` 组件高度的需求,直接修改 `el-select` 的 `height` 属性可能不会生效[^1]。这是因为 `el-select` 的实际显示区域由内部多个元素共同决定,单纯改变外部容器的高度属性无法有效影响到下拉列表部分。 为了实现这一目标,可以采取以下两种方法: #### 方法一:CSS 自定义样式覆盖 通过 CSS 覆盖默认样式来达到目的。具体来说就是针对 `.el-input__inner` 类名应用新的样式规则以控制输入框的高度,并且还需要对弹出的选择面板进行额外定制以便于整个控件看起来协调一致。 ```css /* 修改 input 高度 */ .el-select .el-input__inner { height: 40px; /* 设定所需的具体数值 */ } /* 同步更改菜单项高度 */ .el-select-dropdown__item { line-height: 40px; } ``` 这种方法简单易行,在大多数情况下都能满足需求,但需要注意的是,这样做可能会受到框架版本更新的影响而失效或者需要相应调整。 #### 方法二:利用插槽机制扩展功能 另一种更为灵活的方式是借助 Vue 提供的 slot 插槽特性来自定义 `el-option` 或者其他子组件的内容结构。例如可以在 `el-select` 内部添加带有特定样式的占位选项(如禁用状态),并通过自定义其渲染逻辑间接影响整体布局表现[^2]。 不过这种方式相对复杂一些,适用于有更高级定制化需求的情形。 综上所述,推荐优先尝试第一种方案即使用 CSS 来快速有效地完成高度设定的任务;而对于更加复杂的场景,则可以根据实际情况考虑采用第二种基于插槽的方法来进行开发工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java_学习爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值