当写多个div时,每个div都是块级元素,所以在文档流上会从上到下各占一行排列,即使一行能容下两块也会占一行排列。但float会让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。
而且假如某个div元素A是浮动的,如果A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素,那么A元素会被挤到下一行);如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,也就是说A的顶部总是和上一个元素的底部对齐。如上图,div2和div3是浮动的,div1在标准流里,所有div2顶部和div1是对其的。div3跟在div2后面。
内容设置浮动后,因为推理文档流会让父元素高度塌陷。
在为内联元素设置浮动属性之后,display属性由inline变成block。并且可以为内联元素设置宽高。
智能布局
所谓智能布局,就是两栏都不需要设置宽度,宽度随内容自适应。