【发布时间】:2014-09-03 15:44:37
【问题描述】:
我正在尝试在页面上的图像中间放置文本。我也想在页面上具有不同高度和宽度的其他图像上使用它。我有相对定位的图像和绝对定位的文本,但底部:0 似乎不起作用:
<div class="image">
<img src="http://lorempixel.com/300/300/">
<header class="text">
<h1>header</h1>
<a href="#">button</a>
</header>
</div>
这是 CSS:
.image {
display: inline-block;
position: relative;
}
.text {
position: absolute;
top: 0;
left: 0;
color: white;
text-align: center;
bottom: 0;
right: 0;
}
.text h1 {
text-transform: uppercase;
font-family: Helvetica, Arial;
font-size: 16px;
letter-spacing: .5px;
}
.text a {
font-size: 14px;
border: 1px solid white;
padding: 5px 30px;
color: white;
text-decoration: none;
}
还有一个指向小提琴的链接:http://jsfiddle.net/yg4Ar/
【问题讨论】:
-
bottom:0在你的例子中工作得很好——给.text一个背景颜色,然后你会看到它,元素从其容器元素的顶部到底部拉伸。 (我可能无法实现你想要的,但这完全是另一回事——而且在那个问题上得到了广泛讨论,以 CSS 为中心是一个几乎与网络一样古老的话题......) -
您对 CSS 中的定位有一些误解,其中之一是该位置不是应用于它所设置的元素内的子元素,而是应用于相对于它的元素 父母.