Flex布局(上)

144 阅读2分钟

flex布局(1)

弹性盒子模型

属性: display : flex

一共分成两个部分,弹性容器与弹性盒子

通过给父盒子添加flex属性来控制子盒子的位置和排列方式

flex布局中,分为主轴和侧轴两个方向 行(x轴) 和 列(y轴)

默认主轴方向是X轴方向,从左到右

默认侧轴方向是y轴方向,从上到下

当父元素设置了弹性盒子模型后,所有的子元素

1.会强制在一行上显示

2.子元素可以自由的设置宽度和高度

3.子元素默认宽度 有内容撑开

4.子元素默认高度会拉伸至父元素等高

主轴对齐方式 justify-content

设置在父元素身上,让其子元素排布

.box {
    /* 设置flex布局 */
   display:flex;
    /* 默认值,让子元素从主轴的开头进行排列 */
   justify-content:flex-start;
    /* 让子元素在主轴的尾部进行排列,顺序是不变的 */
   justify-content:flex-end;
    /* 让当前子元素在父盒子里居中 缩写:jcc*/
   justify-content:center;
    /* 左右子元素两端对齐,剩余盒子平分其余空间 缩写:jcsb */
   justify-content:space-between;
    /* 每个子元素的左右间隙相等 */
   justify-content:space-around;
    /* 所有的间隙都相同 */
    justify-content:space-evenly;
}
侧轴对齐方式 align-items

设置在父元素身上,让其子元素排布

.box {
    /* 默认值 子元素没有设置高度的情况下,会拉伸至父元素等高 */
    align-items:stretch;
    /* 让当前子元素在侧轴的开头进行排列 */
    align-items:flex-start;
    /* 让当前子元素在侧轴的尾部进行排列 */
    align-items:flex-end;
    /* 让当前子元素在侧轴上居中 缩写:aic */
    align-items:center;
}
.son {
    /* 某个子元素要进行单独排序时 */
    align-self:flex-start;
}
伸缩比(设置在子元素身上)
.box {
    /* 父元素设置flex布局 */
    display:flex;
}
.son {
    /* 子元素不设置宽度 此时会根据子元素的数量 将父元素的宽度分成几等份,此子元素所占的份数 */
    flex:1;
}
/* 父元素已设置display:flex; */
<div class="box">
    /* 当其中两个盒子已设定好宽度,剩下的盒子书写flex:1时,此盒子会独享剩余宽度 */
    <span style="width:50px">1</span>
    <span style="flex:1">2</span>
    <span style=“width:50px”>3</span>
</div>