flex布局

只设置一个display:flex,此时存在的隐藏的默认属性有:
| 属性名 | 默认属性 | 样式 |
| flex-direction | row | 沿主轴方向排布 |
| flex-wrap | nowrap | 单行排列 |
| justify-content | flex-start | 与主轴方向对齐排布 |
| align-item | normal/stretch |
如果交叉轴方向高度为auto,拉伸到与container同一高度 |
| align-content | stretch | ? |
| order | 0 | 按照文档中出现顺序排列 |
| align-self | auto | 遵循align-items的设置 |
| flex-grow | 0 |





设置display属性为flex或者inline-flex可以成为flex container
flex:flex container以block-level形式存在
inline-flex:flex container以inline-level形式存在

对box设置display:flex

display: inline-flex;

主轴与交叉轴
主轴从左到右,交叉轴从上到下

flex相关的属性

flex-direction(是否沿主轴/交叉轴)
row(沿主轴方向,默认)

row-reverse (逆主轴)

column(交叉轴)

column-reverse(逆交叉轴)
flex-wrap(单行还是多行)

默认是单行,如果添加盒子,无视内部item已经设置好的宽度,无限压缩

flex-wrap: wrap;

wrap-reverse
flex-flow(flex-direction与flex-wrap的缩写)

flex-flow(direction+wrap)

顺序都可
flex-flow: wrap row-reverse;
justify-content(主轴上对齐方式)







align-item(交叉轴上的对齐方式)
非normal/stretch情况下,不设置高度,则自动根据内容撑起高度




align-content(多行内容主轴对齐)








flex-item的属性order(手动设置排列顺序,从小到大分布)

.item1 {order: 5;}.item2 {order: 3;}.item3 {order: 9;}

flex-item的属性align-self (内部交叉轴对齐方式)

.container {width: 500px;height: 500px;background-color: orange;display: flex;align-items: center;}.item {width: 120px;/* height: 120px; */}.item1 {height: 90px;}.item2 {height: 150px;align-self: flex-start;}.item3 {height: 120px;}

flex-item的属性flex-grow(如何拉伸??)

当大于0时,且主轴有剩余,拉伸
flex-item属性flex-shrink(如何收缩?)

.container {width: 500px;height: 500px;background-color: orange;display: flex;}.item {width: 120px;height: 120px;flex-shrink: 0;}.item1, .item2 {flex-shrink: 1;}.item1 {min-width: 100px;}

flex-item属性-flex-basis(?)

解决space-between最后一行的问题
前:

后:

.container {width: 500px;background-color: orange;display: flex;flex-wrap: wrap;justify-content: space-between;}.item {width: 110px;height: 140px;/* margin-right: 20px; */}.container > i {width: 110px;}/* .item:nth-child(4n) {margin-right: 0;} */</style>
</head>
<body><div class="container"><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item3">3</div><!-- 添加span的个数是列数减-2 --><i></i><i></i></div>


