我在应用程序中使用Material UI Card
和CardMedia
组件,但不知道如何将文本覆盖在图像上。这是我正在尝试的一个简化示例:
<Card>
<CardMedia image={this.props.preview} style={styles.media}/>
<div style={styles.overlay}>
this text should overlay the image
</div>
</Card>
const styles = {
media: {
height: 0,
paddingTop: '56.25%' // 16:9
},
overlay: {
position: 'relative',
top: '20px',
left: '20px',
color: 'black',
backgroundColor: 'white'
}
}
我试过将文本div放置在CardMedia
的上方、下方、内部、完全在Card的外部,并使用不同的位置值,但根本无法解决这个问题。MUI的beta版本在CardMedia
上包含了一个overlay属性,但是v1库似乎没有类似的东西。
有谁知道如何正确地做到这一点?提前感谢任何帮助!
2条答案
按热度按时间kkbh8khc1#
你的CSS是关闭的,你需要绝对定位
styles.overlay
,并确保Card
是位置relative
试试这样的东西:
d4so4syb2#
如果你想有一个像0版中的
Card
一样的覆盖,请使用下面的代码。请记住将容器的位置设置为relative
,以便覆盖的absolute
位置可以生效: