>[danger] 弹性布局
---
使用display: flex; 标签 为 (伸缩容器), 每个子元素为 (伸缩项目), 子元素的浮动 / vertical-align失效
>[info]父元素内:
* flex-direction 项目排列方向
* flex-wrap 一条线排列不下, 如何换行
* flex-flow 是上面2个属性的复合写法ß
* justify-content 在主轴对齐方式
* align-items 交叉轴方向(与主轴对立那个)对齐方式
* align-content 多根交叉轴方向对齐方式(一般flex-wrap配合用), 值与justify-content相等
---
* flex-direction的值:
* row(默认值):主轴水平方向,起点左端
* row-reverse:主轴水平方向,起点右端
* column:主轴垂直方向,起点上端
* column-reverse:主轴垂直方向,起点下端
* flex-wrap的值:
* nowrap: 不换行
* wrap: 换行 (第一行在上方)
* wrap-reverse: 换行 (第一行在下方)
* justify-content的值: (主轴)
* flex-start: 排列方向起点对齐
* flex-end: 排列方向终点对齐
* center: 居中
* space-between: 两端对齐, 元素之间有空隙
* space-around: 项目用空隙环绕, 元素之间是端的二倍空隙
* align-items的值:
* flex-start:交叉轴的起点对齐
* flex-end:交叉轴的终点对齐
* center:交叉轴的中点对齐
* baseline: 元素的第一行文字的基线对齐
* stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度
>[info]子元素内:
* flex 弹性元素如何伸长或缩短, 适应flex容器中的可用空间
* flex-grow 有剩余空间的时候,分配给元素的比例
* flex-shrink 空间不足的时候,元素缩小的比例, 如果给0, 则不缩小 (用的少)
* flex-basis 分配空间之前,元素占据主轴的空间, 默认值auto, 项目原本大小
* order 按照数值(默认0), 由小到大, 根据父级指定排列方向, 正向排列
* align-self 单独设置排列方式覆盖继承的, 默认继承于父级align-items
----
* flex: 复合写法: flex-grow flex-shrink flex-basis
* 表格如下
| flex 值 | 相当于flex-grow, flex-shrink, flex-basis 对应的值 |
| --- | --- |
| flex: 1 | flex: 1 1 0 |
| flex: 100px| flex: 1 1 100px |
|flex: 默认值 | flex: 0 1 auto|
|flex: auto | flex: 1 1 auto|
|flex: none | flex: 0 0 auto |
* flex-grow: 有剩余空间的时候,分配给元素的比例
* 例1: 三个flex-grow: 1(等同三个flex: 1)效果![](https://img.kancloud.cn/15/7a/157a24439ae6d4c7676c9b64a4f99e9e_408x32.png)
* 例2: 中间的flex-grow值2, 左右都为1, 效果:![](https://img.kancloud.cn/dc/ae/dcaecb3fa7f3ca0d7affb413973053ea_408x35.png)
* 例3: 中间的flex的值: 2, 左右的flex值1 效果![](https://img.kancloud.cn/d3/4d/d34dd015fe4b73fc192070e40ba0540e_406x34.png)
> 讲解上面图片, 分配空间步骤
---
例2:
flex-basis: 默认auto; 元素本身的大小
so, 剩余的空间 = 父级宽度 - 元素本身大小 * 3(个span)
剩余空间分4份, 左右为1份, 中间的2份, 每个span还得算上原本的大小
例3:
flex-basis: 看上面表格为0, 所以不考虑自身大小, 直接把父级宽度 / 3, 每个人分配
* order: 按照数值(默认0), 由小到大, 根据父级指定排列方向, 正向排列
![](https://img.kancloud.cn/85/13/85135efcf336f0bf194f99072a2e3f39_408x35.png)
---
>[danger] 最忠诚的建议
---
建议优先使用flex复合写法, 会自己推断3个属性的值
- web前端
- CSS问题
- 布局
- 双飞翼布局_flex方式
- 双飞翼布局_margin方式
- 圣杯布局_flex方式
- 圣杯布局_margin方式
- 子元素居中问题
- 弹性布局
- 概念_
- 标准模式与混杂模式
- 各种FC
- line-height
- vertical-align
- CSS3新特性
- 效果
- div添加箭头
- CSS绘制三角形
- JavaScript
- 兼容
- 事件相关
- 原理
- Ajax原理
- 继承原理
- 原型链继承
- 组合继承
- 寄生组合继承
- 数据绑定
- 1单向数据绑定m到c到v
- 2伪双向数据绑定
- 3双向数据绑定
- socket.io
- 运行时
- this指向
- 0.1+0.2问题
- 对象/数组-深拷贝&浅拷贝
- 事件循环
- typeof
- instanceof
- 概念
- 闭包
- 回调函数
- Promise
- 原生对象
- Attribute和property区别
- 防抖函数
- 节流函数
- 语言类型
- Vue
- Vue优缺点
- 仿Vue源码
- 1数据绑定_Observe
- 2数据绑定_订阅者&观察者定义
- 3数据绑定_Vue类实现
- 4数据绑定_Vue访问data更改
- 5DOM编译_Compile_双大括号模板讲解
- 6DOM编译_v-model讲解
- 7DOM编译_v-on:事件绑定讲解
- 项目总结
- 使用Svg图标
- vueCli环境_真机测试
- vueCli集成环信SDK
- 父子组件双向绑定
- React
- React优缺点
- 我的组件库
- Vue的组件库
- 环信_聊天组件
- 面试题
- HTML_分类
- CSS_分类
- JavaScript_分类
- VueJS_分类
- ReactJS_分类
- AngularJS_分类
- 浏览器端
- 笔试题
- CSS
- 特殊布局
- JavaScript_
- 经典_宏任务_微任务
- 浏览器问题
- CORS
- web服务器
- Apache
- 开启跨域
- Nginx
- 常用命令
- 正向代理
- 反向代理
- 负载均衡
- mac安装Nginx
- 配置80端口
- 算法
- 冒泡排序
- 选择排序
- 合并对象_排序
- 杨辉三角
- 红黑树
- 计算机基础
- 网络相关
- OSI七层模型
- http协议
- http工作原理
- https协议
- GET和POST区别
- hosts文件
- php相关
- session机制
- Linux
- 阿里云服务器
- linux使用Mysql
- 安装mysql
- 导入.sql文件
- 远程连接mysql
- linux使用xampp
- 安装Xampp
- 配置web访问
- 域名绑定服务器
- linux搭建git服务器_apache下
- 代码管理
- 什么是git
- 命令行_使用git
- .gitignore文件讲解
- 软件
- VSCode的安装
- 理财
- 基金
- 摄影