我想垂直和水平地将一些文本放在包含旁边图像的div中。到目前为止,我只是将它水平居中,并且令人不安的是让它垂直居中。我知道有很多这样的帖子,并提到一些绝对定位,但每次我尝试它时,一切都只是重叠。
继承人jsfiddle:https://jsfiddle.net/kkae9rzy/
如果您水平展开结果屏幕以使所有内容都在同一条线(基线)上,您将看到文本不是垂直居中的。
下面是我的css的代码:
#titleheader{
margin:auto;
text-align: center;
padding:100px;
background:#f2f2f2;
}
#titleheader > h1 {
padding-left: 75px;
padding-right: 75px;
display:inline-block;
font-family: "Bariol_Regular", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #555;
letter-spacing: 3px;
font-size: 50px;
}
#wind{
display:inline-block;
}
#intel{
display:inline-block;
}
答案 0 :(得分:1)
我没有看到任何东西是"垂直居中"在您的版本中,我在vertical-align: middle
代码中添加了<img>
(通过css),看起来就是您想要的内容。请参阅fiddle。
答案 1 :(得分:1)
您可以使用flexbox布局来实现此目的,以及其他一些方法。
这是使用flexbox方法修改CSS的小提琴。请特别注意#titleheader
。 http://logging.apache.org/log4j/2.x/manual/customconfig.html
您会看到我向#titleheader
添加了一些弹性箱规则:
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
display: flex;
告诉#titleheader
使用flexbox显示布局。
(有关flexbox的更多信息,请参阅https://jsfiddle.net/kkae9rzy/2/和http://dev.w3.org/csswg/css-flexbox/)
align-items: center;
告诉#titleheader
将其所有子项与十字轴的中心对齐(对于我们的演示,X轴,所以它是&#39; s垂直居中)。
justify-content: center
告诉#titleheader
将其所有子项与主轴的中心对齐(对于我们的演示,Y轴,所以它是&#39; s水平居中他们)。
flex-wrap: wrap
告诉#titleheader
将子元素包装到新行上,而不是强制它们全部在同一行上,无论有多少屏幕空间可用。
Flexbox是一款功能非常强大的工具。它在浏览器支持方面迅速获得,我怀疑我们很快就能开始使用它,而不会有太多的polyfill。
以下是对flexbox的当前支持:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
为了确保在使用flexbox时提供最广泛的支持,请确保包含我在上面提到的所有供应商前缀版本的flexbox声明。这可以使用autoprefixer(http://caniuse.com/#feat=flexbox)之类的工具来实现,它可以在编译时为CSS添加所有必需的供应商前缀。
包含我上面提到的属性的所有供应商前缀看起来像这样:
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
答案 2 :(得分:0)
这应该有效
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);