大家好,又见面了,我是你们的朋友全栈君。
首先介绍一下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>
第一种方法(新方法)
父元素(容器)设置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;
}
上述两种方法效果是相同的,如下所示:
其实以上两种方法都是在父元素中分三步来实现,不过个人认为,还是新方法更好记一点儿吧,建议使用第一种方法。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134037.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...