在React.js中使用Material-UI库时,可以通过GridList
组件来展示一系列的图像。如果你想在每个图像的底部添加文本,可以使用GridListTileBar
组件来实现这一功能。以下是一个简单的示例代码,展示了如何在GridList
中的每个图像底部添加文本:
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import GridList from '@material-ui/core/GridList';
import GridListTile from '@material-ui/core/GridListTile';
import GridListTileBar from '@material-ui/core/GridListTileBar';
import IconButton from '@material-ui/core/IconButton';
import InfoIcon from '@material-ui/icons/Info';
const useStyles = makeStyles((theme) => ({
root: {
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'space-around',
overflow: 'hidden',
backgroundColor: theme.palette.background.paper,
},
gridList: {
width: 500,
height: 450,
// Promote the images into their own layer.
transform: 'translateZ(0)',
},
title: {
color: theme.palette.primary.light,
},
titleBar: {
background:
'linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 70%, rgba(0,0,0,0) 100%)',
},
}));
const tileData = [
{
img: '/path/to/image1.jpg',
title: 'Image 1 Title',
author: 'Author 1',
},
{
img: '/path/to/image2.jpg',
title: 'Image 2 Title',
author: 'Author 2',
},
// Add more images as needed...
];
export default function TitlebarGridList() {
const classes = useStyles();
return (
<div className={classes.root}>
<GridList cellHeight={180} className={classes.gridList}>
{tileData.map((tile) => (
<GridListTile key={tile.img} cols={1} rows={1}>
<img src={tile.img} alt={tile.title} />
<GridListTileBar
title={tile.title}
subtitle={<span>by: {tile.author}</span>}
classes={{
root: classes.titleBar,
title: classes.title,
}}
actionIcon={
<IconButton aria-label={`info about ${tile.title}`}>
<InfoIcon />
</IconButton>
}
/>
</GridListTile>
))}
</GridList>
</div>
);
}
GridList
组件可以很容易地适应不同的屏幕尺寸。GridListTileBar
的titlePosition
属性来解决。GridListTileBar
的titlePosition
属性来解决。makeStyles
或styled-components
等工具统一管理,以避免样式冲突。通过上述代码和解释,你应该能够在React.js中使用Material-UI的GridList
组件,并在每个图像的底部添加文本。
领取专属 10元无门槛券
手把手带您无忧上云