垂直对齐和绝对定位div在高度上有问题:自动容器

时间:2013-01-22 22:03:42

标签: javascript css responsive-design

我正在尝试垂直对齐绝对定位div中的文本块,该div位于最大宽度为100%且高度为auto(用于响应式布局)的图像上方。如何垂直对齐文本块,使其在整个缩放过程​​中保持垂直对齐?我怀疑我需要使用某种javascript,但我不确定。非常感谢任何帮助。

http://jsfiddle.net/8Jjs8/

<div id="container">
    <div class="slider">
        <ul class="slides">
            <li class="slide">
                <img src="http://awsassets.panda.org/img/scr_239815_362780.jpg" class="image">
                    <div class="caption">
                        <div class="caption-inside">
                            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                        </div>
                    </div>
             </li>
        </ul>
    </div>
</div>

#container {
    max-width: 600px;
    max-height: 400px;
    margin: 0 auto;
    position: relative;
}

.slider {
    position: relaitve:
    width: 100%;
}

ul.slides {
    list-style: none;
    margin: 0;
    padding: 0;
}

li.slide {
    position: relative;
    display: block;
}

.image {
    max-width: 100%;
    height: auto;
}

div.caption {
    position: absolute;
    bottom: 0;
    left: 0;
    margin: 0;
    padding: 0;
}

div.caption-inside {
    background: rgba(255,255,255,.5);
}

1 个答案:

答案 0 :(得分:0)

这会让你的一部分,但高度将成为一个问题。

div.caption {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 30%;
    margin: auto;
}

我知道有一些新的CSS功能可以让所有这些变得更容易,但是现在你可能不得不忍受限制或转向js。