目录
flex布局体验
flex布局原理
布局原理
flex布局父项常见属性
常见父项属性
flex-direction 设置主轴的方向
justify-content 设置主轴上的子元素排列方式
flex-wrap 设置子元素是否换行
align-items 设置侧轴上的子元素排列方式(单行 )
align-content 设置侧轴上的子元素的排列方式(多行)
align-content 和 align-items 区别
flex-flow
flex布局子项常见属性
flex 属性
align-self 控制子项自己在侧轴上的排列方式
order 属性定义项目的排列顺序
思维导图
传统布局与flex布局
属性值
div {
/* 给父级添加flex属性 */
display: flex;
width: 80%;
height: 300px;
background-color: pink;
/* 默认的主轴是x轴 行 row ,那么y轴就是侧轴*/
/* 我们的元素是跟着主轴来排列的 */
flex-direction: row;
flex-direction: row-reverse;
/* 我们可以把我们的主轴设置成y轴,那么x轴就成了侧轴 */
flex-direction: column;
flex-direction: column-reverse;
}
nowrap
|
默认值,不换行 |
wrap | 换行 |
/* flex布局中,默认子元素不换行,如果装不开,会缩小子元素的宽度,放到父元素里面 */
flex-wrap: nowrap;
flex-wrap: wrap;
/* 默认的主轴的x轴 */
flex-direction: row;
/* 设置主轴居中 */
justify-content: center;
/* 我们需要侧轴居中 */
align-items: center;
属性值 | 说明 |
---|---|
flex-start | 默认值在侧轴的头部开始排列 |
flex-end | 在侧轴的尾部开始排列 |
center | 在侧轴中间显示 |
space-around | 子元素在侧轴平分剩余空间 |
space-between | 子元素先分在两头,然后剩下的平分剩余空间 |
stretch | 设置子元素高度为0,然后平分父元素高度 |
/* 默认不换行,但是我们要换行 */
flex-wrap: wrap;
/* 因为有了换行,此时我们侧轴上控制子元素的对齐方式是align-content */
align-content: flex-start;
align-content: center;
align-content: space-between;
/* align-content: stretch; */
flex-flow: column wrap;
p span {
flex: 1;
}
div span:nth-child(3) {
/* 我们想只让三号盒子下来底侧 */
align-self: flex-end;
}
div span:nth-child(2) {
/* 默认是0,那么要在前面,就要比0小 */
order: -1;
}