前段时间写过一篇CSS基础知识之position,当时对float的理解不太准确,被慕课网多名读者指出(原文已修正,若有误导实在抱歉)。现对float进行更深刻的学习,在此把学习心得分享给你们。css
浮动有4个属性:left(左浮动)、right(右浮动)、none(不浮动)、inherit(继承)。html
浮动元素的包含块是其最近的块级祖先元素。浏览器
浮动元素会左偏移(或右偏移),直到它的外边界接触到『包含块的内边界』或『另外一个浮动元素的外边界』。frontend
浮动元素脱离了标准文档流,文字和行级元素会环绕该元素,块级元素则不受影响。学习
浮动一个非替换元素,必须为该元素声明一个width,不然元素的宽度趋于0。spa
浮动元素的margin(外边距)不会与其余元素的margin合并。.net
浮动元素的顶边不能够高于包含块中先前产生的块级元素或行级元素的顶。code
浮动元素之间不可重叠,若是水平方向没有足够的空间放置浮动元素,它将向下移动,直到有足够的空间或没有更多的浮动元素为止。htm
浮动元素不能溢出包含块的左、右、上边界,仅可溢出下边界。(浮动元素溢出下边界时,部分浏览器会增长包含块的高度,使浮动元素可以包含在包含块中,出现大片空白,致使浏览器兼容性问题。)对象
浮动元素设置负外边距时,虽然浮动元素看起来溢出了包含块,但实际并无违反上述规则。
特殊状况,浮动元素比包含块更宽时,浮动元素会在偏移的反方向溢出。
背景不能显示
边框不能撑开
margin padding 不能正确显示
.clear-float1{ content: “”; display: block; clear: both; } /* 方法1,当父包含块缩成一条时无效 */ .clear-float2{ overflow:hidden; width:100%; } /* 方法2,overflow:hidden属性至关因而让父级紧贴内容,这样便可紧贴其对象内内容,从而实现了清除浮动。 */ .clear-float3{ overflow: auto; zoom: 1; } /* 方法3,zoom是在处理兼容性问题,hidden和auto都能清除浮动,听说auto对seo更友好 */
欢迎来到 石佳劼的博客,若有疑问,请在「原文」评论区 留言,我会尽可能为您解答。