当屏幕尺寸减小时,如何在图像上保持播放按钮图标?

时间:2017-06-05 16:03:28

标签: html css

以下是问题的屏幕截图:

Example of problem

我使用本教程中的说明来了解如何将播放按钮放在动画GIF上:http://www.hongkiat.com/blog/on-click-animated-gif/

在大多数情况下,这是有效的,但是当屏幕尺寸变为移动时,我无法让播放按钮保持居中。

我正在使用这个主题(雨果):https://github.com/tomanistor/osprey

我猜我需要在表格中包含图像和播放按钮图标?该教程的示例包含DIV中包含的图像,但是当我尝试这样时,我丢失了播放按钮:

<figure>
<img src="/images/image-placeholder.jpg" alt="Static Image" data-alt="/images/animated-gif.gif">
</figure>

Example of missing play icon

我目前正在使用以下内容获取占位符和播放图像:

.
.
.
@font-face {
    font-family: 'font-awesome';
    font-style: normal;
    font-weight: 700;
    src: url(https://cdnjs.cloudflare.com/ajax/libs/fontawesome/4.7.0/fonts/fontawesome-webfont.ttf) format("truetype")
}
.
.
.
figure {
  width: 100%;
  margin: 0;
  float: left;
  padding: 10px;
  position: relative;
  cursor: pointer;
}
figure:before,
figure:after {
  position: absolute;
}
figure:before {
  top: 206px;
  left: 50%;
  margin-left: -50px;
  width: 100px;
  height: 100px;
  border: 3px solid rgba(255, 255, 255, 0.7);
  border-radius: 50px;
  background-color: rgba(204, 209, 217, 0.3);
  font-family: 'font-awesome';
  content: '\f04b';
  text-align: center;
  line-height: 95px;
  font-size: 30px;
  color: #182230;
}
figure:after {
  position: absolute;
  display: inline-block;
  width: auto;
  text-align: center;
  top: 20px;
  right: 20px;
  font-size: 11px;
  font-weight: 600;
  padding: 5px;
  border-radius: 3px;
  color: #656D78;
  background-color: rgba(170, 178, 189, 0.1);
  text-transform: uppercase;
}
figure.play:before {
  display: none;
}
figure.play:after {
  content: 'playing';
  color: #fff;
  background-color: #212121;
  text-transform: uppercase;
}
figcaption {
  padding-top: 15px;
  font-size: 14px;
  text-align: center;
  color: #8d9bad;
}
figcaption a {
  color: #59687b;
  text-decoration: none;
}

我尝试打开我的浏览器的开发工具并玩弄风格的值,但感觉像是傻瓜。

以下是我添加到主题中的CSS片段:

{{1}}

如何让我的播放按钮保持与教程示例中的完全居中?

1 个答案:

答案 0 :(得分:0)

figure:before更改为top: 50%以使其保持在最高位置50%,然后移除margin-left并改用transform: translate(-50%,-50%),这会将元素移到左侧并且它自己的宽度/高度的50%。 margin-left: -50px与示例中的translateX(-50%)相同,但使用transform: translate()更简单。

figure:before {
    top: 50%;
    left: 50%;
    /* margin-left: -50px; */
    width: 100px;
    height: 100px;
    border: 3px solid rgba(255, 255, 255, 0.7);
    border-radius: 50px;
    background-color: rgba(204, 209, 217, 0.3);
    font-family: 'font-awesome';
    content: '\f04b';
    text-align: center;
    line-height: 95px;
    font-size: 30px;
    color: #182230;
    transform: translate(-50%,-50%);
}