[css] 清除浮动的方式有哪些及优缺点?
生活随笔
收集整理的這篇文章主要介紹了
[css] 清除浮动的方式有哪些及优缺点?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
[css] 清除浮動的方式有哪些及優(yōu)缺點?
什么是盒子塌陷? 外部盒子本應(yīng)該包裹住內(nèi)部的浮動盒子,結(jié)果卻沒有。問題出現(xiàn)的原因 父元素只包含浮動元素,那么它的高度就會塌縮為零(前提就是你們沒有設(shè)置高度(height)屬性,或者設(shè)置了為auto,就會出現(xiàn)這種情況,如果父元素不包含任何的可見背景,這個問題會很難被注意到。 因為子元素設(shè)置了float屬性,而float屬性會把元素從標(biāo)準(zhǔn)文檔流中抽離,直接結(jié)果就是外部盒子丟了兩個孩子,因為內(nèi)部沒有其它盒子了,所以外部盒子只包裹文本節(jié)點內(nèi)容,卻把兩個內(nèi)部盒子扔在外面了。解決方案上面分析了問題出現(xiàn)的原因,不難找到第一種解決方案(既然孩子丟了,那就去找唄)——給外部盒子也添加浮動把外部盒子也從標(biāo)準(zhǔn)文檔流中抽離,讓它和孩子們見面。 缺點:可讀性差,不易于維護(hù)(別人很難理解為什么要給父元素也添上float),而且可能需要調(diào)整整個頁面布局。在外部盒子內(nèi)最下方添上帶clear屬性的空盒子可以是div也可以是其它塊級元素,把 <div style="clear:both;"></div>放在盒內(nèi)底部,用最下面的空盒子清除浮動,把盒子重新?lián)纹饋怼?缺點:引入了冗余元素用overflow:hidden清除浮動給外部盒子添上這個屬性就好了,非常簡單。缺點:有可能造成溢出元素不可見,影響展示效果。用after偽元素清除浮動給外部盒子的after偽元素設(shè)置clear屬性,再隱藏它這其實是對空盒子方案的改進(jìn),一種純CSS的解決方案,不用引入冗余元素。.clearfix {*zoom: 1;} .clearfix:before,.clearfix:after {display: table;line-height: 0;content: "";} .clearfix:after {clear: both;}這也是bootstrap框架采用的清除浮動的方法。題外話其實還有一種最直接的辦法:給每個盒子規(guī)定width和height,要多大給多大即可。但這并不算什么解決方案,因為這樣的布局不是內(nèi)容自適應(yīng)的,但如果頁面內(nèi)容極少發(fā)生變動,這也是一個不錯的方案,因為它的兼容性是毋庸置疑的。個人簡介
我是歌謠,歡迎和大家一起交流前后端知識。放棄很容易,
但堅持一定很酷。歡迎大家一起討論
主目錄
與歌謠一起通關(guān)前端面試題
總結(jié)
以上是生活随笔為你收集整理的[css] 清除浮动的方式有哪些及优缺点?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: de4dot使用教程
- 下一篇: fft算法matlab程序,FFT算法(