溫習一下元素水平垂直居中的幾種方法 元素有具體寬度 1、absolute+負邊距 .LV_center{ border: 1px solid red; position: absolute; width: 100px; height: 100px; top:50%; left: 50%; margi ...
溫習一下元素水平垂直居中的幾種方法
元素有具體寬度
1、absolute+負邊距
.LV_center{
border: 1px solid red;
position: absolute;
width: 100px;
height: 100px;
top:50%;
left: 50%;
margin-top:-原高度/2 ;
margin-left: -原高度/2
}
2、absolute+calc
.LV_center{
border: 1px solid red;
position: absolute;
width: 100px;
height: 100px;
top:calc(50% - 原高度/2);
left:calc(50% - 原高度/2);
}
3、absolute+margin auto
.LV_center{
border: 1px solid red;
position: absolute;
width: 100px;
height: 100px;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
}
元素寬度不定
1、absolute+transform,css3特性2d平移
.LV_center{
border: 1px solid red;
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
}
2、line-height,外層設置行高,內層繼承行高
.box{
line-height: 300px;
}
.LV_center{
border: 1px solid red;
display: inline-block;
line-height: inherit;
vertical-align: middle;
}
3、table-cell,模擬td特性,讓元素像表格裡的td
.box{
border: 1px solid red;
width: 300px;
height: 300px;
display: table-cell;
text-align: center;
vertical-align: middle;
}
.LV_center{
border: 1px solid red;
display: inline-block;
}
4、flex彈性盒子
.LV_center{
border: 1px solid red;
display: flex;
justify-content: center; //主軸對齊方式
align-items: center; //位於主軸中心
}
推薦一位講得更詳細的 : https://www.jianshu.com/p/1b3337214941