弹性布局flex垂直居中方法(附:老方法css实现垂直居中)

 分类:css3知识时间:2022-12-19 07:30:01点击:

首先介绍一下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;
}

上述两种方法效果是相同的,如下所示:

其实以上两种方法都是在父元素中分三步来实现,不过个人认为,还是新方法更好记一点儿吧,建议使用第一种方法。

除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址: