俺是一个可爱的目录
垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法。有了css3,针对移动端的垂直居中就更加多样化。
方法1:table-cell
- html结构:
<div class="box">
<span>垂直居中</span>
</div>
css:
.box{
display: table-cell;
vertical-align: middle;
text-align: center;
}
方法2:display:flex
.box{
display: flex;
justify-content:center;
align-items:Center;
}
方法3:绝对定位和负边距
.box{
position:relative;
}
.box span{
position: absolute;
width:100px;
height: 50px;
top:50%;
left:50%;
margin-left:-50px;
margin-top:-25px;
text-align: center;
}
方法4:绝对定位和0
.box span{
width: 50%;
height: 50%;
background: #000;
overflow: auto;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
- 这里是通过margin:auto和top,left,right,bottom都设置为0实现居中,但是需要确定内部元素的高度,可以用百分比,比较适合移动端。
方法5:translate
.box span{
position: absolute;
top:50%;
left:50%;
width:100%;
transform:translate(-50%,-50%);
text-align: center;
}
- 这里移位是通过translate来实现的,跟方法3类似
方法6:display:inline-block
.box{
text-align:center;
font-size:0;
}
.box span{
vertical-align:middle;
display:inline-block;
font-size:16px;
}
.box:after{
content:'';
width:0;
height:100%;
display:inline-block;
vertical-align:middle;
}
- 嗯哼,这里是用:after占位
方法7:display:flex和margin:auto
.box{
display: flex;
text-align: center;
}
.box span{
margin: auto;
}
方法8:display:-webkit-box
.box{
display: -webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
-webkit-box-orient: vertical;
text-align: center
}
写在结尾
- 首先,感谢阅读
- emmm,觉得还凑合的话,欢迎点赞呀,嘿嘿嘿(吐舌头)
- 当然,如果有什么错误与不足,欢迎各位大佬指正!
- 在此,感谢!