文档流我心里知道是什么,但是在面试时候总是表达得不清楚,这里想简单说一说文档流。
一、什么是文档流
简单地说,HTML中全部元素都是盒模型,盒模型占用一定的空间,依次排放在HTML中,形成了文档流。
二、三种文档流元素
- inline 流动方向:从左到右,到达最右才会换行
- inline 宽度:内部 inline 元素的和,不能用 width 指定
- inline 高度:由 line-height 间接确定,跟 height 无关,也跟 padding 无关
- block 流动方向:从上到下,每一个都是另起一行
- block 宽度:默认自动计算宽度,可用 width 指定
- block 高度:由内部文档流元素决定,可以设 height
- inline-block 流动方向:也是从左到右,到达最后不会把自己分成两块
- inline-block 宽度:结合前两者特点,可用 width 指定
- inline-block 高度:跟block类似,可以设置 height
三、脱离文档流
元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理解为漂浮在文档流的上方)。依然在文档流中的其他元素将忽略该元素并填补其原先的空间。
三种方式脱离文档流:
四、什么是高度塌陷?
父元素只包含浮动元素,那么它的高度就会塌缩为零,一些方法可以解决,清除浮动或者创建一个 BFC。
「@浪里淘沙的小法师」