用标题定位绝对div

时间:2015-02-09 10:15:58

标签: html css position height absolute

我正在处理一些HTML代码,但遇到了问题。这就是我们要做的事情:

我们将在一行(列表)中有多个图像,宽度将为全宽,因此它们将更改浏览器宽度的高度。这项工作正常,但我们在设置标题时遇到问题。我们要在此图像的中间设置标题,使其垂直位于中间,中间位于水平位置。它还需要拍摄完整的图像高度。

以下是我们拥有的以及我们想要的内容:

Example here JSFIDDLE

代码:

body {
    background: #fafafa;
}

.wrapper {
    position: relative;
    display: block;
    float: left;
}

ul {
    list-style: none;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

ul li {
    width: 20%;
    height: auto;
    float: left;
    position: relative;
}

img {
    max-width: 100%; 
    height: auto;
    float: left;
}

.title-wrapper {
    position: absolute;
    text-align: center;
    width: 100%;
    height: 100%;
    top: 0;
    vertical-align: middle;
    text-align: center;
    background: rgba(0,0,0,0.4);
}
.title-wrapper a {
    color: #000;
    background: #fff;
    padding: 0 30px;
    text-decoration: none;
}

.wanted-result {
    width: 100%; 
    margin-top: 30px; 
    margin-bottom: 30px; 
    float: left;
}

.get-result {
    width: 100%; 
    margin-bottom: 30px; 
    float: left;
}

<div class="get-result">
    This is what get:
</div>
<div class="wrapper">
    <div class="list-wrapper">
        <ul>
            <li><img src="http://s5.favim.com/orig/52/winter-nature-small-canon-eos-7d-Favim.com-474348.jpg" /></li>
            <li><img src="http://s5.favim.com/orig/52/winter-nature-small-canon-eos-7d-Favim.com-474348.jpg" /></li>
            <li><img src="http://s5.favim.com/orig/52/winter-nature-small-canon-eos-7d-Favim.com-474348.jpg" /></li>
            <li><img src="http://s5.favim.com/orig/52/winter-nature-small-canon-eos-7d-Favim.com-474348.jpg" /></li>
            <li><img src="http://s5.favim.com/orig/52/winter-nature-small-canon-eos-7d-Favim.com-474348.jpg" /></li>  

        </ul>
    </div>
    <div class="title-wrapper">
        <a href="#">Title</a>
    </div>
</div>
<div class="wanted-result">
    This is what we want to get:
</div>
<img src="http://s12.postimg.org/ibhy38epp/birds.jpg" />

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以将a标记放在图片后面的li内,并将文字换行到span

        <li><img src="http://s5.favim.com/orig/52/winter-nature-small-canon-eos-7d-Favim.com-474348.jpg" />
            <a href=""><span>Title</span></a>
        </li>

添加下一个css:

.list-wrapper li > a {
    display: block;
    position: absolute;
    background-color: #cccccc;
    height: 100%;
    width: 100%;
    text-align: center;
}

.list-wrapper li > a > span { 
    display: block;
    position: absolute;
    top: 42%;
    width: 100%;
}

您可以在this fiddle

中查看实施情况

答案 1 :(得分:1)

放置style

<a>属性

<a style="text-align: center; left: 50%; background-color: white; padding: 65px 0px 0px; position: absolute; width: 10%; height: 49%;" href="#">Title</a>

试试这个,它会起作用,你会得到你想要的。 如果您想要使用高度和宽度进行操作,请操纵heightwidth属性。

答案 2 :(得分:0)

这很棘手,因为如果没有某种重叠,尝试覆盖动态大小的图像几乎是不可能的。根据文本的大小,使用文本的相对位置并从顶部调整45-50%,然后您可以使用vw尝试尽可能地覆盖图像。

.title-wrapper a {
    position: relative;
    top: 46%;
    color: #000;
    background: #fff;
    padding: 6.8vw 9vw;
    text-decoration: none;
}