在移动端用el-dialog弹窗时,设置固定高度后内容总是溢出屏幕,试过设置max-height: 100%也不行,滚动条还卡在对话框边缘。
代码这样写的:
<el-dialog :visible="showModal" style="height: 300px">
<div class="content">
</div>
</el-dialog>
在手机端测试时发现,当内容超过屏幕高度,底部会被遮罩层截断。用开发者工具模拟移动端时,发现弹窗的实际高度不受父容器影响,但文档里写应该支持百分比高度…
el-dialog的样式默认是基于固定高度的,而百分比高度在这种场景下可能会失效。我的解决办法是通过动态计算屏幕高度来设置弹窗的最大高度,并且让内容区域支持滚动。你可以试试下面的写法:
然后加一点样式调整:
这样改完之后,弹窗的高度会根据屏幕大小动态调整,内容区域如果超出也会自动出现滚动条,不会卡在对话框边缘了。
还有一点需要注意,如果你用的是 Vue 3,记得检查
custom-class是否生效,有时候需要手动引入样式。希望能帮到你!