常见布局定位
普通流
元素按照其在 HTML 中的先后位置至上而下布局,
行内元素水平排列,直到当行被占满然后换行,
块级元素则会被渲染为完整的一个新行,依次排列
浮动
在浮动布局中,元素首先按照~~普通流的位置出现~~,
然后根据浮动的方向尽可能的向左边或右边偏移,
其效果与印刷排版中的文本环绕相似。
定位
在绝对定位布局中,元素会整体 ~~脱离普通流~~,
因此绝对定位元素不会对其兄弟元素造成影响,
而元素具体的位置由绝对定位/相对定位/固定定位的坐标决定。
BFC
BFC 即 Block Formatting Contexts (块级格式化上下文),它属于上述定位方案的普通流。
具有 BFC 特性的元素可以看作是隔离了的独立容器,
容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。
触发BFC
1、body根元素
2、float不为none
3、position为absolute,fixed
4、display为 inline-block、table-cells、flex
5、overflow不为visible
BFC特性
1. 同一个 BFC 下外边距会发生折叠
盒子垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的上下margin会发生重叠。
2. BFC 可以包含浮动的元素(清除浮动用)
计算BFC的高度时,浮动元素也參与计算。
3. BFC 可以阻止元素被浮动元素覆盖
BFC的区域不会与float重叠。
4.内部的盒子会在垂直方向,一个个地放置。
5.每一个元素的左边,与包括的盒子的左边相接触,即使存在浮动也是如此。
IFC
内联格式化上下文,块级元素中仅包含内联级别元素
IFC布局规则
1.ifc中的元素会在一行中从左到右排列。
2.在一行上的所有元素会在该区域形成一个行框。
3.行宽的高度为包含框的高度,高度为行框中最高元素的高度。
4.浮动的元素不会在行框中,并且浮动元素会压缩行框的宽度。
5.行框的宽度容纳不下子元素时,子元素会换到下一行显示,并且会产生新的行框。
6.行框的元素内遵循text-align和vertical-align。