#javascript #reactjs #material-ui
#javascript #reactjs #материал-пользовательский интерфейс
Вопрос:
Я создаю панель приложений, и мне нужен заголовок (текст Lorem ipsum) слева и кнопки справа, я написал этот код, чтобы сделать это, но при этом кажется, что у меня есть какая-то максимальная ширина, после которой текст разбивается на вторую строку, и я хочу, чтобы он был в одной строке строка вот код:
<AppBar position="fixed">
<Toolbar>
<Typography variant="h5">Lorem Ipsum Lorem Ipsum</Typography>
<Grid container item justify="flex-end" direction="row">
<Button variant="contained" className={classes.navbarBtn}>
{b1}
</Button>
<Button variant="contained" className={classes.navbarBtn}>
{b2}
</Button>
</Grid>
</Toolbar>
</AppBar>;
Ответ №1:
Toolbar
имеет display: flex
. Поэтому его дочерняя ( Typography
и Grid
в данном случае) ширина учитывала это.
Теперь, <Grid container/>
width: 100%
таким образом, он занимает все доступное пространство.
Для того, чтобы предоставить контейнеру кнопок только необходимое пространство,
- Вы можете разделить его на 2 сетки —
item
и.container
- Отдай
Typography
flex-grow: 1
свое .
const useStyles = makeStyles(() => ({
h5: {
flexGrow: 1
}
}));
function App() {
const classes = useStyles();
return (
<AppBar position="fixed">
<Toolbar>
<Typography className={classes.h5} variant="h5">
Lorem Ipsum Lorem Ipsum
</Typography>
<Grid item>
<Grid container item justify="flex-end" direction="row">
<Button variant="contained">b1</Button>
<Button variant="contained">b2</Button>
</Grid>
</Grid>
</Toolbar>
</AppBar>
);
}