为什么说overflow: hidden;能清除浮动呢_html/css_WEB-ITnose

WBOY
發布: 2016-06-24 12:02:45
原創
1268 人瀏覽過

一般清除浮动用clear:both  但发现很多人用overflow: hidden来清除浮动,它的原意是隐藏多余的东西,为什么它能清除浮动呢


回复讨论(解决方案)

是因为overflow除了(visible)会重新给他里面的元素建立块级格式化(block formatting context)floats, position absolute, inline-block, table-cell和table-caption都不是块级样式,所以才会用到clear来控制浮动overflow也可以清除浮动是因为当在父级元素设置overflow时候,除了visible,就是只有auto, hidden或者scroll时候,也会建立新的块级格式给他的子元素, 从而起到清楚浮动效果具体信息可以在这里看虽然clear是旧的方式,但还是推荐用clear来做,有些情况会比overflow处理的要好

overflow:hidden属性相当于是让父级紧贴内容,这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。而clear:both则是采用的是在子级清除浮动。你看看使用的位置就清楚了。

<div style="overflow:hidden">   <div style="float:left"></div></div>
登入後複製
登入後複製


<div >   <div style="float:left"></div>  <div style="style="clear:both""></div></div>
登入後複製
登入後複製

是因为overflow除了(visible)会重新给他里面的元素建立块级格式化(block formatting context)floats, position absolute, inline-block, table-cell和table-caption都不是块级样式,所以才会用到clear来控制浮动overflow也可以清除浮动是因为当在父级元素设置overflow时候,除了visible,就是只有auto, hidden或者scroll时候,也会建立新的块级格式给他的子元素, 从而起到清楚浮动效果具体信息可以在这里看虽然clear是旧的方式,但还是推荐用clear来做,有些情况会比overflow处理的要好


我真想操你全家!

overflow:hidden属性相当于是让父级紧贴内容,这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。而clear:both则是采用的是在子级清除浮动。你看看使用的位置就清楚了。

<div style="overflow:hidden">   <div style="float:left"></div></div>
登入後複製
登入後複製


<div >   <div style="float:left"></div>  <div style="style="clear:both""></div></div>
登入後複製
登入後複製


不明白啊,如果仍然没清除浮动的话,难道那父级就不算紧贴内容了吗?
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板