使用el-dialog遇到的坑——append-to-body

在使用Element UI的el-dialog组件时,遇到在添加el-scrollbar滚动条后样式无法生效的问题。通过查找资料发现,问题出在'append-to-body'属性上。该属性导致内层弹框样式设置失效。解决方案是移除'append-to-body'属性。ElementUI官方文档指出,此属性用于在嵌套Dialog场景中保持层级关系。移除后,el-dialog重新受父级样式控制,实现了预期效果。

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

场景:一个list展示列表,点击每条列表信息的详情按钮,可以弹出el-dialog弹出框用来展示信息详情。
我要的效果:
在这里插入图片描述
我在给详情页面内容添加el-scrollbar滚动条时,无论怎么该都不出效果,我一度怀疑是我添加代码时添加错了,代码如下:

<el-dialog class="complainInfo" :visible.sync="openView" width="900px" append-to-body>
      <div class="section-title" slot="title">
        <div class="verticalBar"> </div>
        XXXXXX
      </div>
      <el-scrollbar style="height: 100%">
        <el-form action="">
        	<!-- 表单内容 -->
        	......
        </el-form>
      </el-scrollbar>
</el-dialog>
.complainInfo .el-dialog__body {
    height: 700px;
}

后来查了百度,在一篇 文章 找到了问题所在和解决办法,但是并没有说明原因。

  • 问题所在:append-to-body属性,导致内层弹框样式设置不上
  • 解决办法:去除 append-to-body 属性

最终效果:
在这里插入图片描述

ElementUI 官方文档解释说append-to-body:

Dialog 自身是否插入至 body 元素上。嵌套的 Dialog 必须指定该属性并赋值为 true

在嵌套Dialog场景中,将内层 Dialog 的该属性设置为 true,它就会插入至 body 元素上,从而保证内外层 Dialog 和遮罩层级关系的正确

这样原因就出来了:
设置了append-to-body属性的el-dialog是挂载到body上的,不在.complainInfo父级样式的控制下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值