将窗体从上至下分红一行一行,并在每行中按从左至右依次排放元素,称为文档流,也称为普通流。这个应该不难理解,HTML中所有元素都是盒模型,盒模型占用必定的空间,依次排放在HTML中,造成了文档流。html
元素脱离文档流以后,将再也不在文档流中占据空间,而是处于浮动状态(能够理解为漂浮在文档流的上方,处在另外一个平面)。脱离文档流的元素的定位基于正常的文档流,当一个元素脱离文档流后,依然在文档流中的其余元素将忽略该元素并填补其原先的空间。浏览器
绝对定位是相对于该元素的父类(及以上,若是直系父类元素不知足条件则继续向上查询)元素进行定位的,而且这个父类元素的position必须是非static(也就是设置了position属性)定位的。spa
彻底脱离文档流,相对于浏览器窗口进行定位(相对于浏览器窗口就是相对于html)。.net
浮动就是使元素漂浮在父级元素的左边或右边的方法3d
注意:使用float脱离文档流时,其余盒子会无视这个元素,但其余盒子内的文本依然会为这个元素让出位置,环绕在该元素的周围。code
因为浮动产生,若是对父级设置了背景颜色或背景图片,而父级不能被撑开(这是浮动的一个很重要的结果),因此致使背景不能显示。htm
若是父级设置了边框(border)属性,因为子级里使用了float属性,产生浮动,父级不能被撑开,致使边框不能随内容而被撑开。对象
因为浮动致使父级子级之间设置了padding、margin属性的值不能正确表达(本质仍是设置后父级没有被撑开的缘故),注意这里不能正确表达是指达不到想要的效果,实际上padding和margin仍是起做用的blog
若是给换一个元素设置浮动,那么其余盒子会无视这个元素,但其余盒子内的文本仍是会为这个元素让出位置,造成文字环绕效果图片
通常来讲,而咱们不会给父级标签设置高度,是由于咱们想经过内容来自动调整(自适应高度),可是设置浮动后,父级标签再也不具备自适应高度的能力,所以咱们能够手动设置父级标签的高度
在父级标签中加入class=“clear",让后设置.clear{ clear:both}
<style> .clear { clear:"both" } </style> <div class="clear"></div>
对父级CSS选择器加overflow:hidden样式,能够清除父级内使用float产生浮动。优势是能够不多CSS代码便可解决浮动产生。
为何加入overflow:hidden便可清除浮动呢?那是由于overflow:hidden属性至关因而让父级紧贴内容,这样便可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。
参考地址:https://blog.csdn.net/qq_42204313/article/details/82682261