我正在尝试在响应式图像上显示播放按钮。按钮有96x96px,需要位于图像的中心。
我尝试了很多方法,但总是很糟糕。我读了一些关于flex设计的内容,也许在flex中做起来很简单?
我需要非常简单的方法,因为会有5到10个元素。
谢谢和问候
答案 0 :(得分:2)
将您的图片放入相对容器,将播放按钮设为绝对容器。有点像这样:
<div class="videoContainer">
<img src="link_to_your_image" alt="">
<img src="link_to_play_button" alt="play" class="playBtn">
</div>
和css:
.videoContainer {
position: relative;
}
.playBtn {
position: absolute;
width: 96px;
height: 96px;
left: 50%;
top: 50%;
margin-left: -48px; /*half of the width */
margin-top: -48px; /*half of the height */
}
答案 1 :(得分:1)
如果您为图像指定父元素,则可以将叠加层设置为父图像的背景图像,并将其放置在父图像的中心。
div {
display: inline-block;
position: relative;
}
img {
max-width: 100%;
}
div:after {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%,-50%);
width: 96px;
height: 96px;
background: url('https://img.clipartfest.com/d0227ce70c0b9f371e7a7a018729143e_thumbs-up-smiley-face-big-thumbs-up-clipart_2891-2674.jpeg');
background-size: cover;
content: '';
}
<div>
<img src="http://kenwheeler.github.io/slick/img/fonz1.png">
</div>
这是相同的技术,但在父级中将叠加层设为img
。
div {
display: inline-block;
position: relative;
}
img {
max-width: 100%;
}
.thumb {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%,-50%);
width: 96px;
height: 96px;
}
<div>
<img src="http://kenwheeler.github.io/slick/img/fonz1.png">
<img src="https://img.clipartfest.com/d0227ce70c0b9f371e7a7a018729143e_thumbs-up-smiley-face-big-thumbs-up-clipart_2891-2674.jpeg" class="thumb">
</div>