У меня есть простое диалоговое окно Material UI, содержащее сетку, и полосу прокрутки, которая может прокручивать несколько пикселей, даже если экран достаточно большой, чтобы вместить все это.
<Dialog open={isOpen} onClose={() => changeIsOpen(false)}>
<DialogContent>
<Grid container spacing={3}>
<Grid item xs={12} sm={6}>
<TextField label="First Name" fullWidth />
</Grid>
<Grid item xs={12} sm={6}>
<TextField label="Last Name" fullWidth />
</Grid>
<Grid item xs={12}>
<TextField label="Username" fullWidth />
</Grid>
</Grid>
</DialogContent>
<DialogActions>
<Button
color="secondary"
variant="contained"
onClick={() => changeIsOpen(false)}
>
Cancel
</Button>
<Button
color="primary"
variant="contained"
onClick={() => changeIsOpen(false)}
>
OK
</Button>
</DialogActions>
</Dialog>
Этот код для вас https://codesandbox.io/s/cool-cherry-or0r8.
Я не хочу использовать overflow: hidden
, потому что, если страница слишком мала, будет полоса прокрутки, и это правильно. (В этом игрушечном примере с 3 полями это вряд ли произойдет, но это легко сделать в больших диалоговых окнах).
Я думаю, что проблема как-то связана с взаимодействиями между flexbox и отрицательными полями, которые использует <Grid>
, но я не совсем понимаю.