这是我的第一个问题,我想我没有做错什么,因为它很具体,我正在尝试创建一个画廊,这个画廊有页面,每个页面都有标题,我需要显示一个比例为16:9的图像和标题,无论时间长短。

目前,它可以显示标题,但是当我们将浏览器的大小调整为较小的断点时,如果标题太长,它将中断(显示标题,但如果标题太长,则可能不会显示图像)。

那就是我现在正在寻找的解决方案,我将以jsfiddle为例,我试图使其尽可能简单,所以不要看难看的箭头和东西:P。

小提琴:http://jsfiddle.net/Vb7bP/5/

一个丑陋的解决方法是在此处更改padding-bottom:

.galleryContainer {
    padding-bottom: 56.25%; // This is for the image to respect a 16:9 aspect ratio.
}


但这行不通,因为如果字幕太长或太短,字幕可能会中断,我们可能会失去16:9的比例。

我认为字幕CSS很不错,它位于div的底部,是绝对的。

.galleryCaptionWrapper {
    background: #ccc;
    width: 100%;
    position: absolute;
    padding: 25px;
    z-index: 3;
    bottom: 0;
}


任何帮助将不胜感激,如果问题是对的,抱歉。谢谢!

最佳答案

这是您要找的东西吗?

http://jsfiddle.net/Vb7bP/3/

我认为您在不需要的很多事情上都有绝对的定位。相关的CSS在这里:

.galleryImageWrapper {
    background-color: #000;
    width: 100%;
    padding-bottom: 56%;
    position: relative;
}
.galleryImageWrapper img {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    height: 100%;
}


我自己也有类似的问题:

Scaling object element height proportional to width + constant with CSS

您无需做任何特殊的操作即可使标题出现在图像之后。这是块元素的标准行为。

关于css - 画廊上的CSS绝对元素,尊重16:9的比例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15278438/

10-14 14:51
查看更多