如何在基本CSS灯箱中的图像下添加标题?

时间:2017-10-30 08:04:02

标签: html css lightbox caption

我使用以下代码仅使用CSS显示简单的灯箱。 (我不想使用Javascript)。



.lightbox {
  display: none;
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100%;
  text-align: center;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
}

.lightbox img {
  position: fixed !important;
  top: 50% !important;
  transform: translateY(-50%) translateX(-50%);
  width: 70%;
}

.lightbox figcaption {
  display: inline;
  position: fixed!important;
  top: 70% !important;
  right: 5%;
  transform: translateX(0%);
  color: white;
}

@media (max-width: 500px) {
  .lightbox img {
    width: 90%;
  }
}

@media (min-width: 800px) {
  .lightbox img {
    width: 50%;
  }
}

<a href="#img1"><img class="img-thumbnail" src="img/sensei/kieflesson.jpg"></a>
<a href="#_" class="lightbox" id="img1">
  <figure><img src="img/sensei/kieflesson.jpg">
    <figcaption>Test22</figcaption>
  </figure>
</a>
&#13;
&#13;
&#13;

正如您所看到的那样,我一直试图使用figcaption在图像下面插入一个标题。我设法让它显示,但它没有响应。我希望它随着图像尺寸的变化而移动。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

使用position: absolute表示图片和标题。包装器可以position: fixed。现在你已将位置:固定到所有包装器和图像上。

答案 1 :(得分:0)

感谢您的帮助。看来我的代码有点过于复杂了。我使用以下方法实现了预期的效果:

.lightbox {
  display: none;
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);}

.lightbox figure {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width:90%;
    max-width: 500px;}

.lightbox img {
    width:100%;}

.lightbox figcaption {
    bottom:0;
    position:absolute;
    color:white;
    width: 100%;
    max-width: 500px;
    text-align: right;
    padding-right: 10px;
    background: rgba(0, 0, 0, 0.5);}