CSS-设置盒子水平垂直居中的几种方法


方法1:利用定位position

方法1.1:已知盒子的高度和宽度。

 1 .parent{
 2     position:relative;
 3 }
 4 .child{
 5     position:absolute;
 6     top:50%;
 7     left:50%;
 8     margin-top:-50px;
 9     margin-left:-50px;
10 }

方法1.1:的原理就是  定位中心点事盒子的左上顶点,所以定位之后需要退回盒子高宽一半的距离。

 

方法1.2:利用 margin:auto 属性。

 1 .parent{
 2     position:relative;
 3 }
 4 .child{
 5     position:absolute;
 6     margin:auto;
 7     top:0;
 8     left:0;
 9     right:0;
10     bottom:0;
11 }

方法1.3: 利用transform,可以不用定义盒子的具体高度和宽度。

1 .parent{
2     position:relative;
3 }
4 .child{
5     position:absolute;
6     top:50%;
7     left:50%;
8     transform:translate(-50%,-50%);
9 }

方法2:利用display:flex

1 .parent{
2     display:flex;
3     justify-content:center;  // 盒子元素在主轴(横轴、x轴)方向上的对齐方式
4     align-items:center; // 用来设置每个flex元素在交叉轴上的默认对齐方式
5 }

方法3:利用display:table-cell

1 .parent{
2     display:table-cell;
3     vertical-align:middle;
4     text-align:center;
5 }
6 .child{
7     display:inline-block;
8 }

方法4:计算父盒子与子盒子的空间距离(与方法1是一个道理)

//计算方法:父盒子高度或者宽度的一半减去子盒子高度或者宽的的一半。
.child{
    margin-top:200px;
    margin-left:200px;
}

方法5:利用calc计算

1 .parent{
2     position:relative;
3 }
4 .child{
5     position:absolute;
6     top:calc(200px);//(父元素高-子元素高)÷ 2=200px
7     let:calc(200px);//(父元素宽-子元素宽)÷ 2=200px
8 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM