今天看到一篇文章關於清除浮動的,忽然間腦殼短路了,咦?爲何要清除浮動?原諒個人無知,搜了下原來是這樣,又倒騰出原來的筆記,唉,原本就有記錄啊,並且也會常常用到,用的久了連原理都忘了。恩,防止本身再犯一樣的錯誤,我仍是本身總結整理出來吧!話很少說,代碼爲證!html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>爲何要清除浮動</title>
6 <style>
7 .wrapper{width:50%;background: cornflowerblue;border:2px solid black;}
8 .box1{width: 30%;height: 100px;background: red;}
9 .box2{width: 30%;height: 100px;background: black;}
10 .box3{width: 30%;height: 100px;background: chocolate;}
11 </style>
12 </head>
13 <body>
14 <div class="wrapper">
15 <div class="box1"></div>
16 <div class="box2"></div>
17 <div class="box3"></div>
18 </div>
19 </body>
20 </html>
恩,各個瀏覽器運行的效果圖以下:瀏覽器
其中A-B-C分別是I元素裏的子元素,若是沒有浮動的狀況它們是按照標準文檔流佈局(塊級元素從上至下,行內元素從左至右),一個網頁須要合理的佈局纔可以吸引住用戶,咱們須要在有限的空間內展現更多的信息,有時候須要a,b,c,排在一行,咱不用高大上的Flexbox(彈性盒佈局)由於IE8及如下都不支持,你要問我怎麼知道的,給大夥兒甩個網址http://caniuse.com/#home,自行搜索哦!另外IE不支持VW和VH單位,用的小朋友謹慎! 一般狀況app
咱們是不須要給父元素定寬高的,並且想讓它寬高自適應,可是若是咱們給子元素添加了float:left;以後會是什麼狀況呢?我們用圖說話:佈局
父元素哪裏去了?!恩,這裏咱要說明下浮動是什麼原理了,打個比方吧,原諒個人想象力不豐富,咱們把父元素想象爲一個能夠自動收縮的盒子,當咱們不停地往裏面放子盒子的時候,它就會自動被撐開,給子元素加float(英文原義指飄動浮動的意思)的時候,就至關於子元素飄在了父盒子之上,那麼顯然父盒子空了就自動收縮回去了,如今咱們要作的是如何不讓它收縮回去:spa
1.給父元素加overflow:hidden;恩,要說這個方法的優劣,我剛纔查了下,可能會對SEO不友好,但具體有多大的嚴重影響我尚未這方面的經驗,姑且就這樣解釋吧,待我遇到了再回過來修改。.net
.wrapper{width:50%;background: cornflowerblue;border:2px solid black;overflow:hidden;}
2.給子元素的下方添加空的divcode
1 <body> 2 <div class="wrapper"> 3 <div class="box1"></div> 4 <div class="box2"></div> 5 <div class="box3"></div> 6 <div class="box4"></div> 7 </div> 8 </body>
box4就是咱們添加的空元素,這個空元素的具體寫法以下:(有兼容~有兼容~有兼容~萬惡的IE6不支持,由於人家有默認的最小高度)htm
1 .box4{clear:both;height: 0;overflow: hidden;}
3.採用僞類選擇器的方式來達到清除浮動的目的,我工做中採用的就是這種方式,屢試不爽哦!(很差意思,剛纔本身給本身挖了一個坑,目前還在坑裏,我再試試...)blog
.wrapper:after{clear:both;content:".";display:block;height: 0;overflow: hidden;visibility: hidden;}
恩,好了,就是上面的那樣,content: '.'; display:block;對於五大瀏覽器來講不可缺乏,visibility:hidden;的做用是容許瀏覽器解析它,可是用戶看不到哦。文檔
原創文章,轉載請註明出處 蝸蝸牛在路上[http://www.cnblogs.com/wowoniuzailushang]
同步發表於: http://blog.csdn.net/wowoniuzailushang CSDN