Material-UI Dialog中使用Grid布局后内容溢出怎么办?
我在Dialog里用Grid组件排版表单,但内容总是溢出到遮罩层外面。试过给Paper加maxWidth: '100%'和overflow: 'auto'都没用,左右两边还是出现滚动条。关闭按钮也移位了,这是不是和container设置有关?
<Dialog open={open} maxWidth="sm">
<DialogContent>
<Grid container spacing={2}>
<Grid item xs={12}>...表单字段...</Grid>
</Grid>
</DialogContent>
</Dialog>
调整过Grid的margin和padding都不管用,难道要手动计算容器宽度?
正确的解法是给DialogContent加样式,而不是去改Paper或者Grid。你需要设置
display: 'flex'和flexDirection: 'column',再配合overflow属性来处理。另外记得把Grid容器的width设为100%,这样可以避免横向滚动条。给你一个能跑的代码示例:
这里有几个关键点要说下:首先加上fullWidth属性让Dialog占满可用宽度,然后DialogContent用flex布局保证内容自适应,最后用一个div包裹Grid并设置宽度100%来防止溢出。
别再去手动计算宽度了,这种硬编码最容易出问题。还有就是关闭按钮移位的问题,通常是因为外层容器样式冲突导致的,按上面的方法改完这个问题也会一并解决。