Javascript 很好地格式化网格
我试图以一种“直观”的方式显示数据,但很难正确构建数据 我想格式化页面如下:第一个网格包含3个文本字段,一个在另一个下面,上面有适当的标题。第二个网格与其他3个字段相同,第三个网格包含7个文本字段,我想在第一列中显示->3,第二列中显示2,最后一列中显示2,都在同一标题下 如果我把最后7个字段放在同一个网格下,它们都出现在同一列中。现在它几乎可以工作了,但只有前3个文本字段在标题下方正确地加了边距,另外4个显示在不同的边距上 这是我的代码:(如果有人有改进显示器的想法,我非常乐意听到) 现在是:Javascript 很好地格式化网格,javascript,reactjs,grid,jsx,Javascript,Reactjs,Grid,Jsx,我试图以一种“直观”的方式显示数据,但很难正确构建数据 我想格式化页面如下:第一个网格包含3个文本字段,一个在另一个下面,上面有适当的标题。第二个网格与其他3个字段相同,第三个网格包含7个文本字段,我想在第一列中显示->3,第二列中显示2,最后一列中显示2,都在同一标题下 如果我把最后7个字段放在同一个网格下,它们都出现在同一列中。现在它几乎可以工作了,但只有前3个文本字段在标题下方正确地加了边距,另外4个显示在不同的边距上 这是我的代码:(如果有人有改进显示器的想法,我非常乐意听到) 现在是:
Txt6 Txt4 Title3 Title2 Title1
Txt7 Txt5 Txt1 Txt1 Txt1
Txt2 Txt2 Txt2
Txt3 Txt3 Txt3
我不确定这是否是基于您想要的内容构建网格的最佳方式,但我会这样做:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Column="2" Content="Title3" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Content="Title2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Content="Title1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="0" Grid.Row="1" Content="Txt6" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="1" Grid.Row="1" Content="Txt4" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="2" Grid.Row="1" Content="Txt1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Grid.Row="1" Content="Txt1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Grid.Row="1" Content="Txt1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="0" Grid.Row="2" Content="Txt7" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="1" Grid.Row="2" Content="Txt5" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="2" Grid.Row="2" Content="Txt2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Grid.Row="2" Content="Txt2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Grid.Row="2" Content="Txt2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="2" Grid.Row="3" Content="Txt3" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Grid.Row="3" Content="Txt3" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Grid.Row="3" Content="Txt3" HorizontalAlignment="Center" FontSize="36"/>
</Grid>
输出如下所示:
如果要将标题居中放置在所有5列的上方,还可以使用
Grid.ColumnSpan
跨越网格的多个列。在网格中使用alignItems:alignItems=“center”
花了一段时间后,我想我做到了: 以下是代码沙盒: 代码:
const styles = theme => ({
root: {
flexGrow: 1
},
textField: {
marginLeft: theme.spacing.unit,
marginRight: theme.spacing.unit,
width: 50
}
});
class TextFields extends React.Component {
render() {
const { classes } = this.props;
return (
<div className={classes.root}>
<Grid container>
<Grid item container xs={4}>
<Grid item xs={12}>
<Typography variant="subheading" gutterBottom color="primary">
Grid1
</Typography>
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid item container xs={4}>
<Grid item xs={12}>
<Typography variant="subheading" gutterBottom color="primary">
Grid2
</Typography>
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid container item xs={4}>
<Grid item xs={12}>
<Typography variant="subheading" gutterBottom color="primary">
Grid3
</Typography>
</Grid>
<Grid container item xs={12}>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid container item xs={12}>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid container item xs={12}>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
</Grid>
</Grid>
</Grid>
</div>
);
}
}
constyles=theme=>({
根目录:{
flexGrow:1
},
文本字段:{
marginLeft:theme.spating.unit,
marginRight:theme.space.unit,
宽度:50
}
});
类TextFields扩展了React.Component{
render(){
const{classes}=this.props;
返回(
网格1
网格2
网格3
);
}
}
PS这是材质-UI您能将设计附在这里吗?当前显示的图片@SakhiMansoorNo我是说想要的output@SakhiMansoorUpdatedI在下面添加了一个答案。希望这有帮助
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Column="2" Content="Title3" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Content="Title2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Content="Title1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="0" Grid.Row="1" Content="Txt6" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="1" Grid.Row="1" Content="Txt4" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="2" Grid.Row="1" Content="Txt1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Grid.Row="1" Content="Txt1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Grid.Row="1" Content="Txt1" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="0" Grid.Row="2" Content="Txt7" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="1" Grid.Row="2" Content="Txt5" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="2" Grid.Row="2" Content="Txt2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Grid.Row="2" Content="Txt2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Grid.Row="2" Content="Txt2" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="2" Grid.Row="3" Content="Txt3" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="3" Grid.Row="3" Content="Txt3" HorizontalAlignment="Center" FontSize="36"/>
<Label Grid.Column="4" Grid.Row="3" Content="Txt3" HorizontalAlignment="Center" FontSize="36"/>
</Grid>
<Grid container spacing={24} alignItems="center">
const styles = theme => ({
root: {
flexGrow: 1
},
textField: {
marginLeft: theme.spacing.unit,
marginRight: theme.spacing.unit,
width: 50
}
});
class TextFields extends React.Component {
render() {
const { classes } = this.props;
return (
<div className={classes.root}>
<Grid container>
<Grid item container xs={4}>
<Grid item xs={12}>
<Typography variant="subheading" gutterBottom color="primary">
Grid1
</Typography>
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid item container xs={4}>
<Grid item xs={12}>
<Typography variant="subheading" gutterBottom color="primary">
Grid2
</Typography>
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={12}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid container item xs={4}>
<Grid item xs={12}>
<Typography variant="subheading" gutterBottom color="primary">
Grid3
</Typography>
</Grid>
<Grid container item xs={12}>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid container item xs={12}>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
</Grid>
<Grid container item xs={12}>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
<Grid item xs={4}>
<TextField className={classes.textField} />
</Grid>
</Grid>
</Grid>
</Grid>
</div>
);
}
}