gpt4 book ai didi

css - 使用 Flexbox 和 Material UI 使 Item 位于底部

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:42 25 4
gpt4 key购买 nike

我正在尝试将未分配的文本添加到我的容器底部,如该模型所示:enter image description here

下面是我到目前为止的代码。我也在努力让播放按钮之间的边界也起作用。我尝试了通常的 css:bottom:0position:relevant 以及 Flexbox,但它似乎不想到达容器的最底部。

 const styles = theme => ({
root: {
flexGrow: 1,
overflow: 'hidden',
padding: theme.spacing(0, 3),
},
paper: {
maxWidth: 800,
margin: `${theme.spacing(2)}px auto`,
padding: theme.spacing(2),
},
textField: {
marginLeft: theme.spacing(1),
marginRight: theme.spacing(1),
width: 200,
},
playButton: {
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
position: "relative",
"& .playButton": {
position: "absolute",
top: "60%",
left: "-55px",
transform: "translateY(-50%)",
},
"& .star-rating": {
"& .fa-star": {
"&:hover": {
"&::before": {
content: "\f005",
color: "yellow"
}
}
}
},
},
});

function Tasks(props) {
const { classes } = props;
return (
<div className={classes.root}>
<Paper className={classes.paper}>
<Grid container spacing={2}>
<Grid item xs={12} sm container>
<Grid item xs container direction="column" spacing={2}>
<Grid item xs>
<div className="name-label">
Name
</div>
<Typography variant="h6" gutterBottom>
{props.name}
</Typography>
<div className="form-divider"></div>
<Typography variant="body2" color="textSecondary">
{props.description}
</Typography>
</Grid>
</Grid>
<Grid item classes={{ root: props.classes.playButton}}>
<Grid item xs={3} className="playButton">
<i class="far fa-play-circle fa-2x"></i>
</Grid>
<div className="workers-assigned-label">
Workers Assigned
</div>
<Typography variant="h6" gutterBottom>
0/25
</Typography>
<div class="star-rating">
<label class="far fa-star fa-2x"></label>
<label class="far fa-star fa-2x"></label>
<label class="far fa-star fa-2x"></label>
</div>
<div className="dropdown-menu">
<h5>Unnassigned</h5>
</div>
</Grid>
</Grid>
</Grid>
</Paper>
</div>
);
}

export default withStyles(styles)(Tasks);

任何输入都会很棒。

最佳答案

我建议从看起来像这样的网格“骨架”开始:

<Grid container>
<Grid item container xs={8} direction="column" justify="flex-start">
// Left column contents, with each row as a <Grid item>
</Grid>
<Fab className={classes.fab}><PlayIcon /><Fab>
<Grid item container xs={4} direction="column" justify="space-between" className={classes.right}>
// Right column contents, with each row as a <Grid item>
</Grid>
</Grid>

direction=column 将帮助您在每个容器中垂直放置元素。 justify=space-between 将确保您的第一项位于容器顶部,最后一项(未分配的文本)位于底部。

“正确的”CSS 类如下所示:

right: {
borderLeft: `1px solid ${theme.palette.grey[500]}`,
position: "relative"
}

你可以给它一个“相对”的位置,这样可以更容易地定位晶圆厂相对于柱子的位置。 “fab”类看起来像:

fab: {
position: "absolute",
margin: "auto",
top: 0,
bottom: 0,
left: -28
}

margin、top 和 bottom 属性有助于 fab 垂直居中,左侧是根据 fab 的尺寸使其在边界上居中的一些 hack。

这是一份将所有内容整合在一起的工作草案:https://codesandbox.io/s/tender-torvalds-dlbke?fontsize=14

关于css - 使用 Flexbox 和 Material UI 使 Item 位于底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56360161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com