我有一个包含标题文字和图片的div。
使用下面的代码,标题显示在图像上方。
HTML code:
<div class="thumbnail">
<div class="text">
<center>Heading</center>
</div>
<div class="image">
<img src="sample.png">
</div>
</div>
我想对齐标题,使其显示在图像的中心(垂直和水平)上。
如何使用HTML和CSS实现这一目标?
答案 0 :(得分:1)
您可以删除图片代码并将图片作为容器div的背景。
<强> HTML 强>
<div class="text">
Heading
</div>
<强> CSS 强>
.text {
background-image: url('sample.jpg');
text-align: center;
}
编辑:我不想把它作为我的完美答案出售,但我意识到我错过了垂直对齐,并且已经在评论和答案中提供了类似的解决方案,让我只是为您提供以下信息的良好来源。关键是,如果您使用vertical-align:middle
或其他内联元素,则可以使用span
,但使用div
时,您必须使用其他技巧,例如position:absolute
和减去边距。< / p>
答案 1 :(得分:0)
除了使用center
元素之外,您的标记大多是正确的,并且您不需要将img
元素包含在div.
Here is some example markup:
<div class="thumbnail">
<h1>Heading</h1>
<img src="sample.png">
</div>
And its corresponding CSS:
中<div class="thumbnail">
<h1>Heading</h1>
<img src="sample.png">
</div>
您始终可以使用h1以外的元素来保存标题。这取决于您的偏好。
答案 2 :(得分:0)
以下内容对您有帮助。
HTML:
<div class="thumbnail">
<div class="text">
Heading
</div>
</div>
CSS:
.text {
background-image: url('http://cs616623.vk.me/v616623331/7991/vPKjXbo-c7o.jpg');
width: 320px;
height: 240px;
line-height: 240px;
vertical-align: middle;
text-align: center;
font-size: 48px;
}
请注意,在此方法中,您必须手动设置height
元素的width
和text
。此外,height
应该line-height
重复{{1}},以使垂直对齐正常工作。
您可以在相应的JSFiddle中测试和更改代码,或者只需查看full-screen result。
答案 3 :(得分:0)
我不建议使用lineheight来垂直对齐文本(正如一些答案所示),因为如果标题是长的并跨越两行,那将会很糟糕。
我要做的是绝对定位标题,然后使用display: table-cell
垂直对齐它。
注意为了能够使用此解决方案,您必须指定标题的高度。
HTML
<div class="thumbnail">
<div class="text">
<h1>Heading</h1>
</div>
<div class="image">
<img src="http://placehold.it/350x250" />
</div>
</div>
<强> CSS 强>
.thumbnail{
position: relative;
display: inline-block;
}
.text{
position:absolute;
top: 0px;
left: 0px;
width: 350px;
}
.text h1{
height: 250px;
display: table-cell;
vertical-align: middle;
text-align: center;
width: 350px;
color: #fff;
}