使用css在响应式图像上播放按钮

时间:2017-02-25 22:12:53

标签: css html5 flexbox

我正在尝试在响应式图像上显示播放按钮。按钮有96x96px,需要位于图像的中心。

我尝试了很多方法,但总是很糟糕。我读了一些关于flex设计的内容,也许在flex中做起来很简单?

我需要非常简单的方法,因为会有5到10个元素。

谢谢和问候

2 个答案:

答案 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>