Я пытаюсь понять этот пример кода, https://codesandbox.io/s/9rvlm, из примеров в документации по пользовательскому интерфейсу материала (https://material -ui.com / components / grid / ):
import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
import Grid from '@material-ui/core/Grid';
const styles = theme => ({
root: {
flexGrow: 1,
},
paper: {
padding: theme.spacing(2),
textAlign: 'center',
color: theme.palette.text.secondary,
},
});
function CenteredGrid(props) {
const { classes } = props;
return (
<div className={classes.root}>
<Grid container spacing={3}>
<Grid item xs={12}>
<Paper className={classes.paper}>xs=12</Paper>
</Grid>
<Grid item xs={6}>
<Paper className={classes.paper}>xs=6</Paper>
</Grid>
<Grid item xs={6}>
<Paper className={classes.paper}>xs=6</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
</Grid>
</div>
);
}
CenteredGrid.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(CenteredGrid);
Мой вопрос: какова цель присвоения flexGrow: 1
родительскому элементу div
?
Как я понимаю из https://material -ui.com / system/ flexbox / # flex-grow и https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow, flex-grow
- это свойство CSS элементов flex-контейнеров.Однако в этом примере я не вижу элемента flex-контейнера, содержащего этот компонент;CenteredGrid
отображается (как <Demo/>
) непосредственно в корневом div.
Применяется ли styles.root
к родительскому div «на всякий случай», когда компонент отображается в гибком контейнере?Буду признателен за разъяснения.