CSS教程:div設置float後高度不自動增加

來源:互聯網
上載者:User
關鍵字 網頁製作 CSS教程

本來想把這個題目修改為「閉合浮動元素」或「清除浮動元素」,但想了一下,還是不修改為好。 因為從這個題目我們可以更加容易的看出,如果您沒有閉合(清除)浮動元素,它將造成的後果是-----div的高度不能自動增加。

言歸正傳
目前用來清除「閉合(清除)浮動」的方法,主要是一下四種:

1.    額外標籤法

這種方法就是向父容器的末尾再插入一個額外的標籤,並令其清除浮動(clear)以撐大父容器。 這種方法瀏覽器相容性好,沒有什麼問題,缺點就是需要額外的(而且通常是無語義的)標籤。
我個人不喜歡這種方法,但是它確實是W3C推薦的方法

<div style="clear:both;" ></div>

或者使用

<br style="clear:both;" />

2.    使用after偽類

這種方法就是對父容器使用after偽類和內容聲明在指定的現在內容末尾添加新的內容。 經常的做法就是添加一個「點」,因為它比較小不太引人注意。 然後我們再利用它來清除浮動(閉合浮動元素),並隱藏這個內容。
這種方法相容性一般,但經過各種 hack 也可以應付不同瀏覽器了,同時又可以保證html 比較乾淨,所以用得還是比較多的。

#outer:after{
content:".";
height:0;
visibility:hidden;
display:block;
clear:both;
}


3.    設置overflow為hidden或者auto

這種做法就是將父容器的overflow設為hidden或auot就可以在標準相容瀏覽器中閉合浮動元素.
不過使用overflow的時候,可能會對頁面表現帶來影響,而且這種影響是不確定的,你最好是能在多個瀏覽器上測試你的頁面

4.    浮動專用項目,float-in-float

這種做法就是讓父容器也浮動,這利用到了浮動元素的一個特性——浮動元素會閉合浮動元素。 這種方式在 IE/Win 和標準相容瀏覽器中都有較好的效果,但缺點也很明顯——父容器未必想浮動就浮動的了,畢竟浮動是一種比較特殊的行為,有時佈局不允許其浮動也很正常。
個人不是很贊成這種做法,但是從dudo最後的總結總可以看出,他好像很贊成這種做法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.