我一直在努力让我的内容div中的文字垂直居中,我很难过。容器包括1个带标题的div和带有内容的1 div。
我尝试了以下元素:
vertical-align: middle;
并且还在玩显示器/定位器,但我没有运气。
目前的CSS如下:
.content-wrapper {
height: 100vh;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: left;
text-align: left;
-ms-flex-flow: column nowrap;
flex-flow: column nowrap;
color: #000;
font-family: Montserrat;
text-transform: none;
-webkit-transform: translateY(40vh);
transform: translateY(40vh);
will-change: transform;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transition: all 1.7s cubic-bezier(0.22, 0.44, 0, 1);
transition: all 1.7s cubic-bezier(0.22, 0.44, 0, 1);
padding-top: 10%;
padding-right: 25px;
padding-left: 30px;
float: right;
width: 35%;
background-color: #f0f7fc;
}
答案 0 :(得分:23)
Flexbox可让您垂直对齐文字,而不会使div
具有固定的height
。现在所有现代浏览器都支持它。
Check my other answer查看Flexbox的所有问题和解决方法。大多数是Internet Explorer。
display: flex;
align-items: center;
div {
width: 50px;
height: 100px;
display: flex;
align-items: center;
border: 1px solid black;
}
<div>
Test
</div>
line-height
如果您知道外部height
的{{1}},则可以使用line-height
。
div
height: 100px;
line-height: 100px; /* same value as height */
div {
width: 50px;
height: 100px;
line-height: 100px;
border: 1px solid black;
}
<div>
Test
</div>
display: table-cell
是另一个不错的选择,它允许您在不知道display: table-cell
的高度的情况下垂直对齐。它也适用于旧版浏览器(except Internet Explorer 7)。
div
display: table-cell;
vertical-align: middle;
div {
width: 50px;
height: 100px;
display: table-cell;
vertical-align: middle;
border: 1px solid black;
}