>[danger] 什么是FC?
---
> w3c规定的一个概念, 决定元素如何放置, 以及和其他元素的一些关系和相互作用
---
| 名字 | 全称 | 解释 |
| --- | --- | --- |
| FC | Formatting Context | 格式化上下文 |
| BFC | Block Formatting Context | 块级格式化上下文 |
| IFC | Inline Formatting Context | 行内格式化上下文 |
| GFC | GridLayout Formatting Context | 网格布局格式化上下文 |
| FFC | Flex Formatting Context | 自适应格式化上下文 |
>[danger]BFC
---
块格式化上下文, 是块级盒布局出现的区域, 也是浮动层元素进行交互的区域。一个独立的布局区域
1. 问题: 子元素浮动, 父级高度塌陷(无法被撑开, 子元素脱离文档流)
![](https://img.kancloud.cn/ce/95/ce9505f79fb133d2b868322755add1ab_731x352.png)
2. 问题: 相邻div, 其中一个浮动了, 挡住了后面div, 想划清界限
![](https://img.kancloud.cn/14/0d/140dd2c6028e887c6c825faa080efb5b_574x429.png)
解决: 用BFC包住浮动元素 (触发BFC方式)
* 父级float 不为none 的任何值
* 父级position 为 absolute / fixed
* 父级overflow 不为 visible 的任何值 (hidden常用)
* 父级display 为 inline-block / table-cell / table-caption / flow-root(无副作用)
>[danger]IFC
---
1. 规则: 左右margin撑开,上下margin并未撑开,符合IFC规范
只计算横向样式空间,不计算纵向样式空间
![](https://img.kancloud.cn/92/b5/92b51fd7473bde7b7ff5bfecb430a4bd_212x50.png)
2. 规则: IFC规定, 内容是行内元素, 水平排列由块级的, text-align决定
![](https://img.kancloud.cn/e9/17/e9177d096df0286c458e5e4e478bb130_270x48.png)
3. 规则: float元素, 优先排列, 段落开头的大字很有用
![](https://img.kancloud.cn/6b/36/6b363155955ad505d84ede9171b892a7_267x132.png)
~~~
<style>
.warp { border: 1px solid red; width: 200px; }
.f-l { float: left; font-size: 25px;}
</style>
<div class="warp">
我是一个很好看的内容 <span class="f-l">哇</span> 我是一个很好看的内容
我是一个很好看的内容
我是一个很好看的内容
</div>
~~~
>[danger]GFC
----
概念:
* 网格布局, 并非表格布局, 网格有着比表格更丰富的css属性, 灵活的控制
* 可以定义网格的行和列, 变成了二维布局
触发条件:
* 设置display: grid; 得到一个独立渲染区域, 网格布局
[属性详解]([https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS\_Grid\_Layout/Basic\_Concepts\_of\_Grid\_Layout](https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout))
---
>[danger]FFC
---
触发条件:
* 设置display: flex; / display: inline-flex; 得到独立渲染区域, 弹性格式上下文环境(FFC)
规则:
* display: flex; 标签为块级元素
* display: inline-flex; 标签为行块级元素
* 子标签们都是弹性项目
[属性讲解flex]([https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex](https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex))
[排列方式align/justify]([https://developer.mozilla.org/zh-CN/docs/Web/CSS/align-content](https://developer.mozilla.org/zh-CN/docs/Web/CSS/align-content))
- 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的安装
- 理财
- 基金
- 摄影