弹性布局flex垂直居中方法(附:老方法css实现垂直居中)
首先介绍一下flex弹性布局,采用Flex布局的元素,称为Flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,成为flex项目(flex item),简称“项目”。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框 的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
利用flex实现元素水平垂直居中的两种方法:
html如下:
<div class="father"> <div class="son"></div> </div>
第一种方法(新方法,弹性布局flex垂直居中方法)
父元素(容器)设置display属性为flex,并设置水平主轴上的元素居中,垂直交叉轴上的元素居中。
*{ margin: 0; padding: 0 } .father { width: 400px; height: 400px; border: 1px dashed black; display: flex;/*父元素设置flex属性*/ justify-content: center;/*水平主轴居中*/ align-items: center;/*垂直交叉轴居中*/ } .son { width: 100px; height: 50px; background: pink; }
第二种方法(老方法css实现垂直居中)
父元素(容器)设置display为-webkit-box,并设置水平主轴上的元素居中,垂直交叉轴上的元素居中。
*{ margin: 0; padding: 0 } .father { width: 400px; height: 400px; border: 1px dashed black; display: -webkit-box; -webkit-box-pack: center; -webkit-box-align: center } .son { width: 100px; height: 50px; background: pink; }
上述两种方法效果是相同的,如下所示:
其实以上两种方法都是在父元素中分三步来实现,不过个人认为,还是新方法更好记一点儿吧,建议使用第一种方法。
除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址:https://tangjiusheng.cn/css3/2398.html
原文地址:https://tangjiusheng.cn/css3/2398.html