我有一个 MUI 对话框,由于它是由用户过滤的列表,因此它的高度会有所不同。它最终很烦人,因为对话框在屏幕“跳跃”时试图保持它的中心位置,因为它的增长和缩小。这是它的样子:
对于这个特定问题,一个简单的解决方案是简单地alignItems
从dialogPaper
classes 属性中取消设置。像这样的东西:
const useStyles = makeStyles((theme) => ({
pivottedDialog: {
alignItems: 'unset',
...
},
}));
const MyDialog = () => (
<Dialog
{...otherProps}
classes={{
scrollPaper: classes.pivottedDialog
}}
>
...
</Dialog>
)
但是,这会导致它在屏幕上失去其居中位置,而我仍然需要它居中(参考带有完整列表的对话框,没有任何内容被过滤)。我希望它的起点与未更改的对话框相同,适用于所有适用的屏幕尺寸(宽度超过 600 像素)
我怎么能做到这一点?
我尝试过使用类的定位和top
属性pivottedDialog
,但它会根据屏幕大小而变化。这需要响应并集中在宽度超过 600 像素的所有屏幕尺寸上。
我用两个对话框制作了一个示例应用程序,可以在这里玩:https ://codesandbox.io/s/crazy-tesla-emc8m?file=/src/App.js