Element UI 弹窗中 el-select 下拉框位置错乱的解决方案

💡 Element UI 弹窗中 el-select 下拉框位置错乱的解决方案

🧩 问题描述

在使用 "element-ui": "^2.15.3" 时,将 <el-select> 用在 <el-dialog> 弹窗中,可能会遇到这些问题:

  • 下拉框漂浮在弹窗外部
  • 不随弹窗滚动移动
  • 位置错乱、容易遮挡

这是因为 Element UI 内部使用了 Popper.js ,默认采用 position: fixed,导致下拉框脱离原本布局结构。

✅ 最佳解决方案

1️⃣ 设置 el-select 属性

ini 复制代码
<el-select
  v-model="value"
  :popper-append-to-body="false"
  popper-class="custom-popper"
>
  <el-option label="选项1" value="1" />
  <el-option label="选项2" value="2" />
</el-select>

2️⃣ 自定义样式修正定位

css 复制代码
.custom-popper {
  position: absolute !important;
  top: 100% !important;
  z-index: 1000 !important;
}

3️⃣ 保证.el-selectpositionrelative

arduino 复制代码
// 框架默认是relative
.el-select {
  position: relative;
}

📌 原理说明

  • :popper-append-to-body="false":禁止下拉框挂载到 body
  • .custom-popper:用 absolute 替代默认的 fixed 定位;
  • 父容器需为 relative,让 absolute 正确定位参考。

✅ 效果总结

  • ✅ 下拉框在弹窗内显示,位置准确
  • ✅ 弹窗滚动时,下拉框随之移动
  • ✅ 不遮挡、不漂浮、不穿透

✍ 总结一句话

通过禁止挂载到 body + 自定义定位类 .custom-popper,可以完美解决 el-select 在弹窗中的下拉错位问题。

📦 使用版本:"element-ui": "^2.15.3" 👨‍💻 作者:@slmev

如果对你有帮助,欢迎点赞 ⭐ 收藏 ✨ 留言 💬!

相关推荐
韩曙亮7 天前
【Flutter】Flutter 组件 ④ ( 组件渲染 的 三棵树理论 | Widget 树 → Element 树 → RenderObject 树 )
flutter·element·widget·renderobject
风吹夏回15 天前
Vue3 + Element Plus 完整使用指南
前端·javascript·vue.js·element
zhedream18 天前
十万级列表的跨页多选方案:el-table 踩坑与治理实践
vue.js·element
前端尤雨西2 个月前
ElementPlus 源码之 packages 目录
前端·element
梓言2 个月前
解决 Element Plus 中 Tooltip 样式影响全局菜单(Menu)及宽度控制失效的完美方案
前端·css·element
忆琳2 个月前
Vue3 优雅解决单引号注入问题:自定义指令 + 全局插件双方案
vue.js·element
忆琳2 个月前
Vue3 全局自动大写转换:一个配置,全站生效
javascript·element
猪八宅百炼成仙3 个月前
解决 el-date-picker type:daterange 在 layout 布局中的宽度问题
前端·element
lemon_yyds3 个月前
vue 2 升级vue3 : element ui 校验红色高亮失去效果
前端·element
爱分享的鱼鱼6 个月前
前端密码验证详解:Vue3+Element Plus 方案/纯血Vue 3 方案:从语法解析到实战实现
vue.js·element