谈谈文档流

327 阅读2分钟

流动方向

先给一张图,观察文档的流动方向:


通过上图,我们可以知道文档的流动方向:
inline元素从左到右,到达最右边才会换行
block元素从上到下,每一个都另起一行
inline-block也是从左到右

比较常见的block元素是div,inline元素常见的有span,我们通过代码来看对比: 将inline元素转换成block元素:display:block
将block元素转换成inline元素:display:inline
注意:不要在inline元素里加block元素

inline和inline-block的区别

先看图
可以直观地看出:inline-block元素到最右边不会像inline元素一样会折行显示文字内容,而是类似块级元素,一整块地显示。所以说inline-block有着inline元素的从左到右的流动方向,也有着block元素的块级显示。

文档流宽度

inline元素宽度为内部inline元素的和,设置width无效
block默认自动计算宽度,可用width指定
inline-block结合两者特点,可用width

文档流高度

inline高度由line-height间接决定,与height无关
block元素高度由内部文档流元素决定,可以设置height
inline-block跟block类似,可以设置height

脱离文档流

哪些操作会脱离文档流?
1. float 2. position:absolute/fixed 把元素设置为浮动后,会脱离文档流,最终导致父元素高度塌陷 要想高度不塌陷,清除浮动就好了

position:absolute也会脱离文档流,先看未加定位的图: 再看加了定位的图 通过上图得知:加了position:absolute后,div1会脱离文档流(可以理解为浮起来了),原来占据的位置被div2顶上来了