有时候为了使页面元素看起来更美观,常常会让元素水平居中,垂直居中。下面总结了几个常用的方法。
首先HTML结构如下:
1 <div class="out"> 2 <div class="in">布局</div> 3 </div>
方法1、使用最流行的flex布局方案。
1 .out {
2 display: flex;
3 justify-content: center;
4 align-items: center;
5 }
方法2、使用定位和偏移
1 .out {
2 position: relative;
3 }
4 .in {
5 position: absolute;
6 top: 50%;
7 left: 50%;
8 transform: translate(-50%, -50%);
9 }
使用transform可以不用考虑内部元素的宽高。
方法3、使用定位和负margin
1 .out {
2 position: relative;
3 }
4 .in {
5 position: absolute;
6 top: 50%;
7 left: 50%;
8 margin-left: -25px;
9 margin-top: -12.5px;
10 }
此时,需要明确内部元素的宽高。(这里设置的内部元素in是高25px,宽50px)
方法4、使用定位和margin:auto;
1 .out {
2 position: relative;
3 }
4 .in {
5 position: absolute;
6 top: 0;
7 left: 0;
8 right: 0;
9 bottom: 0;
10 margin: auto;
11 }
如果内部只有文本没有标签,如下:
<div class="table">直接文字居中</div>
则可以设置:
.table {
width: 200px;
height: 100px;
display: table-cell;
text-align: center;
vertical-align: middle;
border: #00f solid 1px;
}
或者是设置 line-height 为元素高度。
几个简单的是元素水平居中垂直居中的方法,有新方法再继续补充。