工作中偶然发现<el-dialog>
弹框中<el-select>
组件下拉框“飘了”,偏移到了弹框上部,并且这个异常时有时无,但是根据墨菲定律,有概率出现的问题总有一天会出现。果然过了两天又发现了同样的问题,并且这个问题的复现几乎不可控。
找技术总监求教,总监大人也不能确定具体原因,只说这个问题他也遇到过,分享了一下经验,让我求助前端组大佬。于是,厚着脸皮发了一条钉钉……大佬欣然同意,赶到了工位帮忙解决。一通检查元素之后,说明了一下出现问题的原因是<el-select>
组件下拉框位置是js计算控制的,而父元素的某些样式设置可能会造成计算不准确。大佬让我加上popper-append-to-body="false"
属性,将信将疑地加上了就没管了。
后面两天写的新页面中类似的地方特意拿掉了一些别人封装的元素,改用普通<div>
并设置padding-top
样式,希望没事(手动狗头)。
新页面调试的时候又发现了同样的问题,直觉告诉我父元素上设置的overflow:hidden;
样式有问题,所以将<el-dialog>
弹框移到了该<div>
外面。由于不清楚现有封装的组件的样式设置,仍然不排除其他父元素的样式影响,只能静观其变。
原文:https://www.cnblogs.com/sunsetgirl/p/14902208.html