我在这里搜索过,但由于div的动态特性,我似乎找不到解决问题的方法。
对于我的网站,我想要一个横幅图片,可以缩小为廉价的响应。我有那个部分,我只是不能让我的图像垂直居中。我创建了jsFiddle,代码如下。
HTML
<div class="banner col-lg-12">
<img src="http://laurentvandessel.be/wp-content/uploads/2014/03/placeholder.png" />
</div>
CSS
.banner {
margin-top: 51px;
margin-bottom: 20px;
overflow:hidden;
text-align: center;
height:300px;
display: inline-block;
vertical-align: middle;
}
.banner img {
position:relative;
width:100%;
left: 100%;
margin-left: -200%;
display:inline-block;
vertical-align: middle;
}
另外,如果你有更好的方式去做我已经做过的事情,也会受到赞赏。
谢谢大家伙。
答案 0 :(得分:1)
这有点棘手,因为有时图像比容器高。你可以这样做(见最后三行):
.banner img {
position:relative;
width:100%;
left: 100%;
margin-left: -200%;
display:inline-block;
vertical-align: middle;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
如果适合,你也可以使用这种方法进行水平居中:
.banner img {
position:relative;
width:100%;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
答案 1 :(得分:0)
你是否需要具有动态高度的img动态div高度!
设置你的CSS
.banner{height:auto; ...}
如果你需要一个垂直中心,也需要水平div为TEXT和图像,你可以查看我的jsFiddle测试。
答案 2 :(得分:0)
CSS
.banner {
margin-top: 51px;
margin-bottom: 20px;
/*overflow:hidden;
text-align: center;*/
height:300px;
/*display: inline-block;
vertical-align: middle;*/
background: url(http://laurentvandessel.be/wp-content/uploads/2014/03/placeholder.png) no-repeat center center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
/*.banner img {
position:relative;
width:100%;
left: 100%;
margin-left: -200%;
display:inline-block;
vertical-align: middle;
}*/
HTML
<div class="banner col-lg-12">
<!--<img src="http://laurentvandessel.be/wp-content/uploads/2014/03/placeholder.png" />-->
</div>