Flex布局
1.容器属性
- 设置主轴方向
 - 设置主轴对齐方式
 - 设置侧轴对齐方式(单行)
 - 设置项目是否换行显示
 - 设置侧轴对齐方式(多行
 
2.项目属性
- 项目的缩放
 - 项目单独的侧轴对齐方式
 - 项目的排放顺序
 
1.1给父盒子设置display:flex
- 父盒子就变成了弹性盒子(Flexbox),一般称为容器
 - 子元素就变成了一个全新的盒子(不能使用float、clear、vertical-align ),一般称为项目
 - 给父盒子或子元素添加属性,目的:控制子盒子的大小和位置
 
1.3容器属性-设置主轴方向
- 主轴默认是水平方向,侧轴默认的是垂直方向
 - 属性:flex-dirretion
 - 值: | 属性值 | 作用 | | :—-: | :—-: | | row | 行,水平(默认值) | | column | 列,垂直 | | row-revers | 行,从右向走 | | coulumn-revers | 列,从下向上 |
 
1.4.2 容器属性 - 设置主轴对齐方式 *
/*弹性盒子设置在父元素上,作用是更好的控制子元素的分布(排列)*/justify-content/*控制主轴上子元素的对齐方式flex-start-主轴开始的位置对齐flex-end-主轴结束的位置对齐center-主轴居中对齐space-between-两端对齐中间等距space-around-两边是中间等距的一半space-evenly两边和中间的距离 */
| 属性值 | 作用 | 
|---|---|
| flex-start | 默认值, 起点开始依次排列 | 
| flex-end | 重点开始依次排列 | 
| center | 沿主轴居中排列 | 
| space-around | 弹性盒子沿主轴均匀排列, 空白间距均分在弹性盒子两侧 | 
| space-between | 弹性盒子沿主轴均匀排列, 空白间距均分在相邻盒子之间 | 
| space-evenly | 弹性盒子沿主轴均匀排列, 弹性盒子与容器之间间距相等 | 
1.4.3 容器属性 - 设置侧轴对齐方式(单行)
属性: align-items
值: | 属性值 | 作用 | | :—-: | :—-: | | flex-start | 默认值, 起点开始依次排列 | | flex-end | 重点开始依次排列 | | center | 沿侧轴居中排列 | | stretch | 默认值, 弹性盒子沿着主轴线被拉伸至铺满容器 |
align-items:设置子元素在侧轴上的对齐方式。属性值可以是:
flex-start从侧轴开始的方向对齐flex-end从侧轴结束的方向对齐baseline基线 默认同flex-startcenter中间对齐stretch拉伸
1.4.4 容器属性 -设置项目是否换行显示
属性: flex-wrap
值: | 属性值 | 作用 | | :—-: | :—-: | | nowrap | nowrap | | wrap | 换行 | | wrap-reverse | 换行,并且和侧轴方向相反 |
注意: 换行的条件有两个(缺一不可)
flex-wrap: wrap
项目的宽度之和要大于容器的宽度
1.4.5 容器属性 - 设置侧轴对齐方式(多行)
属性: align-content
- 值: | 属性值 | 作用 | | :—-: | :—-: | | align-content | 默认值, 起点开始依次排列 | | flex-end | 重点开始依次排列 | | center | 沿侧轴居中排列 | | stretch | 默认值, 弹性盒子沿着主轴线被拉伸至铺满容器 | | space-around | 弹性盒子沿侧轴均匀排列, 空白间距均分在弹性盒子两侧 | | space-between | 弹性盒子沿侧轴均匀排列, 空白间距均分在相邻盒子之间 | | space-evenly | 弹性盒子沿侧轴均匀排列, 弹性盒子与容器之间间距相等 |
 
display: flex;/* 多行换行nowrap 不换行wrap 换行 */flex-wrap: nowrap;/* 控制子元素多行侧轴对齐staeth 拉伸flex-start 侧轴开始的位置对齐flex-end 侧轴结束的位置对齐center 侧轴居中对齐*/
1.5.1 项目属性 - 设置项目所占主轴方向的大小
属性: flex
值: | 属性值 | 作用 | | :—-: | :—-: | | auto | 项目既可以放大,也可以缩小(不是默认值!) | | none | 项目不可以缩放 | | 纯数字 | 项目等比例缩放 |
- 注意:flex的默认值:不放大,但是当父子宽度不够时会缩小
 
1.5.2 项目属性 -项目单独的侧轴对齐方式
属性: align-self
值: | 属性值 | 作用 | | :—-: | :—-: | | auto | 默认值,和大家一样 | | flex-start | 默认值, 起点开始依次排列 | | flex-end | 重点开始依次排列 | | center | 沿侧轴居中排列 | | stretch | 弹性盒子沿着主轴线被拉伸至铺满容器 |
/* 主轴方向row 水平方向 默认值row-reverse 水平反向column 垂直方向 */flex-direction: column;/* 主轴对齐方向 */justify-content: center;/* 单行侧轴方向 */align-items: center;
1.5.3 项目属性 -项目的排列顺序
属性:order
值: | 属性值 | 作用 | | :—-: | :—-: | | 纯数字 | 默认为0,数字越大越靠后 |
Flex布局重点总结
大数据热点案例
设置Flex布局的属性是什么?
- display:flex
 
容器属性
- 设置主轴方向的属性
 - 设置主轴对齐方式的属性
 - 设置侧轴对齐方式的属性(单行)
 
项目属性
- 设置项目所占主轴方向的大小
 
效果图:

代码块:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {background-color: #333;}.hot {position: relative;width: 747px;height: 617px;background: url(./images/shj.png);margin: 0 auto;}.circle {position: absolute;top: 180px;right: 126px;width: 100px;height: 100px;/* border: 2px solid #fff; */}.point {position: absolute;left: 0;top: 0;right: 0;bottom: 0;width: 10px;height: 10px;margin: auto;background-color: yellow;border-radius: 50%;}.circle div:nth-child(n+2) {position: absolute;left: 0;top: 0;right: 0;bottom: 0;width: 10px;height: 10px;margin: auto;box-shadow: 0 0 10px 0 yellow;border-radius: 50%;animation: light 1.2s linear infinite;opacity: 0;}.circle div:nth-child(3) {animation-delay: 0.4s;}.circle div:nth-child(4) {animation-delay: 0.8s;}@keyframes light {0% {}70% {/* 注意:此次不要用缩放,因为缩放会将盒子所有的东西放大,包含阴影 *//* transform: scale(4); */width: 40px;height: 40px;opacity: 1;}100% {width: 80px;height: 80px;opacity: 0;}}</style></head><body><div class="hot"><div class="circle"><!-- 实心的小点 --><div class="point"></div><!-- 发光的圈圈 --><div></div><div></div><div></div></div></div></body></html>
