CSS常用的Div居中方法

182 阅读2分钟

       作为一个前端实习生,一入前端深似海,刚入公司可谓是干啥啥不会,就连个简单H5页面都需要花费大量时间。But经过一个多月的实践后,自己的前端技术提升了不少,基础也更加扎实,逐渐明白”万物皆可div“这个真理。前端页面布局,最重要的莫过于如何随心所欲的控制div的位置,这里我总结了一些常用的div居中方法,希望可以给刚接触前端的小白们提供帮助。

div居中分为两类:水平居中和垂直居中

一、水平居中:让元素在水平轴上居中布局

1.通过设置子元素的margin

.div-parents{

   width : 宽度 ;

   height : 高度 ;

}

.div-son{

   margin : 0  auto ;

}

2.通过绝对定位position : absolute 与 margin 结合(前提已知宽度,不推荐使用)

.div{

   width : 宽度 ;

   position : absolute ;

   left : 50% ;

   margin-left : -0.5*宽度 ;

}

3.通过绝对定位position : absolute 与 transform 结合

.div{

   position : absolute ;

   left : 50% ; 

   transform : translate (-50% , 0) ;

}

4.通过flex布局(推荐使用)(影响子元素布局)

.div{

   display : flex ;

   justify-content : center ;

}

5.对于行内元素,如想让div中的文本水平居中

.div{

   text-align : center ;

}

二、垂直居中:让元素在纵轴上居中布局

1.通过绝对定位position : absolute 与 margin 结合(前提已知高度,不推荐使用)

.div{

   height : 高度 ;

   position : absolute ;

   top : 50% ;

   margin-top : -0.5*高度 ;

}

2.通过绝对定位position : absolute 与 transform 结合

.div{

   position : absolute ;

   top : 50% ;

   transform : translate (0 , -50%) ;

}

3.通过flex布局(推荐使用)(影响子元素)

.div{

   display : flex ;

   align-items : center ;

}

4.对于行内元素,如想让div中的文本垂直居中

.div-parents{

   height : 高度 ;

}

.div-son{

   line-height : 父元素的高度 ; 

}

三、水平垂直居中:让元素在页面上水平垂直居中布局

通过前面两种居中布局的结合,即可实现水平垂直居中

1.通过绝对定位position : absolute 和 margin 结合(前提已知宽高,不推荐使用)

.div{

   position : absolute ;

   left : 50% ;

   top : 50% ; 

   width : 宽度 ;

   height : 高度 ;

   margin : -0.5高度 0 0 -0.5宽度 ;

}

2.通过绝对定位position : absolute 与 transform 结合

.div{

   position : absolute ;

   top : 50% ;

   left : 50% ;

   transform : translate (-50% , -50%) ;

}

3.通过flex布局 (对子元素产生影响)(推荐使用)

.div{

   display : flex ;

   flex-direction : column ; 

   align-items : center ;

}

4.对于行内元素,如想让div中的文本水平垂直居中

.div{

   text-align : center ;

   line-height : 父元素的高度 ;

}