一、BOX模型
box是CSS中布局的基本单位,而不同类型的box,会参与不同的Formatting Context(一个决定如何渲染文档的容器),box内的元素会以不同的方式渲染。
block-level:display属性为blcok、table、list-item,会生成block-level box,并参与Block Formatting Context。
inline-level:display属性为inline、inline-block,inline-table,会生成inline-level box,并参与Inline Formatting Context。
 
二、Formatting Context
Formatting Context是页面中的一块渲染区域,并有一套渲染规则,决定了其子元素将如何定位,以及和其他元素的关系和相互作用。
常见的Formatting Context:
1.Block Formatting Context :BFC 块级格式化上下文
2.Inline Formatting Context :IFC
 
三、BFC布局规则
1.内部box会在垂直方向,一个接一个放置;
2.box垂直方向的距离由margin决定,属于同一个BFC的两个相邻box的margin会发生重叠;
3.每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反);
4.BFC的区域不会与float box重叠;
5.BFC就是页面上的一个隔离的容器,容器里面的子元素不会影响到外面的元素,反之亦如此;
6.计算BFC高度时,浮动元素也参与计算。
 
哪些元素会生成BFC:
1.根元素;
2.float属性不为none;
3.position为absolute、fixed;
4.display为inline-block,table-cell、table-caption、flex、inline-flex;
5.overflow不为visible。

最新文章

  1. js用户修改密码功能模块
  2. C++拼接字符串
  3. 【原创】GC/垃圾回收简介
  4. Linux开机启动流程
  5. 通过存储过程进行分页查询的SQL示例
  6. JGit与远程仓库链接使用的两种验证方式(ssh和https)
  7. 【Demo 0025】注册/反注册窗体类RegisterClassEx/UnregisterClass
  8. Web前端优质学习网站
  9. html5移动端meta自动适应标签
  10. flutter学习之二Material Design设计规范
  11. python--日志模块
  12. Android数据解析——JSON
  13. delphi 第三方组件 log4cpp.dll
  14. Linux文本编辑器快捷方式
  15. English trip -- VC(情景课) 7 A Shopping 购物
  16. hihocoder 1485----hiho字符串
  17. Latex中文utf-8编码的三种方式
  18. DB开发之oracle存储过程
  19. 框架----Django框架(基础篇)
  20. Jenkins 安装与使用--实例

热门文章

  1. bzoj3680吊打GTY
  2. wooyun
  3. android2.2 watchdog分析
  4. Java EE 学习(9):IDEA + maven + spring 搭建 web(5)- 博客文章管理
  5. nodeJS学习(10) --- 事件模块
  6. 关于 react state的改变数据上面的一点问题
  7. Dictionary To Dynamic
  8. javascript草稿
  9. Docker(三):Docker的基本概念
  10. Turn on and off trigger events 生效控制