Это происходит потому, что вы используете position="fixed"
(это позиция AppBar по умолчанию).
Когда вы визуализируете положение панели приложения фиксированным, размер элемента не влияет на остальную часть страницы. Это может сделать некоторую часть вашего контента невидимой за панелью приложения. Вот 3 возможных решения:
- Вы можете использовать position = "sticky" вместо фиксированного. ⚠️ sticky не поддерживается IE 11.
Вы можете отобразить второй компонент:
function App() {
return (
<React.Fragment>
<AppBar position="fixed">
<Toolbar>{/* content */}</Toolbar>
</AppBar>
<Toolbar />
</React.Fragment>
);
}
Вы можете использовать theme.mixins.toolbar CSS:
const useStyles = makeStyles(theme => ({
offset: theme.mixins.toolbar,
}))
function App() {
const classes = useStyles();
return (
<React.Fragment>
<AppBar position="fixed">
<Toolbar>{/* content */}</Toolbar>
</AppBar>
<div className={classes.offset} />
</React.Fragment>
)
};
На мой взгляд, лучшее решение для вас - добавить разделитель div и установить для marginBottom
значение theme.mixins.toolbar
:
function App(props) {
const classes = useStyles(props);
return (
<div className="App">
<AppBar
position="fixed"
className={classes.appBarContainer}
>
Placeholder Text
</AppBar>
<div className={classes.appBarSeparator} />
<p>Exterior Text</p>
</div>
);
}
const useStyles = makeStyles(theme => ({
appBarContainer : {
offset: theme.mixins.toolbar,
padding : '10px 20px',
marginBottom:'200px !important'
, display : 'flex'
, flexFlow : 'row nowrap'
, justifyContent : 'space-between'
, '& > *' : {
border : "2px dashed orange"
}
},
appBarSeparator: theme.mixins.toolbar
}));