利用flex实现元素水平垂直居中

首先介绍一下flex布局。

采用Flex布局的元素,称为Flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,成为flex项目(flex item),简称“项目”。

利用flex实现元素水平垂直居中_第1张图片
容器默认存在两根轴:水平的主轴(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>

第一种方法(新方法)

父元素(容器)设置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;
}

第二种方法(老方法)

父元素(容器)设置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;
}

上述两种方法效果是相同的,如下所示:
利用flex实现元素水平垂直居中_第2张图片
其实以上两种方法都是在父元素中分三步来实现,不过个人认为,还是新方法更好记一点儿吧,建议使用第一种方法。

你可能感兴趣的:(前端,flex,元素居中,布局)