我正在嘗試在應用的<div>
中居中對齊文本(可能或不可以跨越多行)。垂直對齊位置:絕對
請考慮以下標記:
<div class="item">
<img src="test.jpg" />
<div class="overlay">
<a href="#">Some long content</a>
</div>
</div>
應用如下的CSS(請注意,這是不太版):
.item {
position: relative;
img {
position: relative;
z-index: 1;
}
.overlay {
position: absolute;
z-index: 2;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,.5);
text-align: center;
a {
color: #fff;
}
}
}
除了被水平居中對齊,我想讓.overlay
中的文字垂直對齊中間的文字。我嘗試添加以下內容:
.item {
display: table;
.overlay {
display: table-cell;
vertical-align: middle;
}
}
我也試過inline-block
,但沒有什麼幫助,因爲該元素是絕對定位。我不能在這裏使用通常的line-height
技巧,因爲文本可能會跨越多行,而指定較大的行高將會破壞佈局。
有誰知道(相對)跨瀏覽器的方法來解決這個問題?它需要在IE9 +,FF和Chrome中工作。如果可能的話,我想避免添加任何額外的標記或「divitis」。
我放在一起的jsfiddle來證明我的問題(你還可以看到慣用的招數做工精細當position
= absolute
!):
感謝您的時間。當我嘗試實現這個時,'
'元素被壓下> http://jsfiddle.net/Ggbtt/5/ – BenM
@BenM h4是默認的塊元素,因爲我的例子改變顯示標籤在這種情況下, h4標籤太http://jsfiddle.net/Ggbtt/6/ ... – DaniP
感謝您的時間。工作很好。 – BenM