通常这段代码有效,但由于某种原因,它并不是在它的父元素中垂直居中。这可能是因为背景图片?
http://jsfiddle.net/tmyie/BcmNw/
<div class="background-image">
<div class="omg-title">This is the title</div>
</div>
CSS:
.background-image {
background-image: url('');
height: 600px;
background-size: contain;
position: relative;
background-position: center;
background-repeat: no-repeat;
margin: 0 auto;
text-align: center;
}
.omg-title {
padding: 15px;
-webkit-transform: translate(-50%, -50%);
position: absolute;
}
答案 0 :(得分:0)
尝试其中任何一项,或删除绝对定位:
1)中心.omg-title div
.omg-title {
left: 50%;
position: absolute;
margin-left: -50px; // depending on width
}
2)给.omg-title div全宽:
.omg-title {
width: 100%;
}
编辑:对于垂直对齐,请尝试(演示此处:http://jsfiddle.net/6E5as/):
.omg-title {
top: 50%;
position: absolute;
margin-top: -10px; // depending on height
text-align: center;
width: 100%;
}
答案 1 :(得分:0)
如果您只是取消.omg-title
的所有样式,那么它就会很好,因为.background-image
有text-align:center;
。
JSFiddle提供证明
答案 2 :(得分:0)
删除位置和转换属性,它将适合您:
.omg-title {
padding: 15px;
}
答案 3 :(得分:0)
由于您使用的是position:absolute,因此您可以删除转换并将文本设置为居中,并进行以下更改:
.omg-title {
top: 50%;
left: 50%;
position: absolute;
}
要水平完善中心,你应该知道文字的宽度,例如,如果它是100px你应该应用margin-left: -50px;
第二个解决方案http://jsfiddle.net/7ScDh/
的示例