真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決css高度塌陷問題

這篇文章將為大家詳細講解有關如何解決css高度塌陷問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)擁有十多年成都網(wǎng)站建設工作經(jīng)驗,為各大企業(yè)提供網(wǎng)站建設、網(wǎng)站制作服務,對于網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、app軟件開發(fā)公司、wap網(wǎng)站建設(手機版網(wǎng)站建設)、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、國際域名空間等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設計、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等網(wǎng)站化運作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設項目的能力。

1. 高度塌陷

在文檔流中,父元素的高度默認被子元素撐開,也就是說子元素多高,父元素就多高。但是, 當為子元素設置浮動后,子元素會完全脫離文檔流。此時,將會導致子元素無法撐起父元素的高度,導致父元素的高度塌陷。

  • 由于父元素的高度塌陷了,則父元素下的所有元素都會向上移動,這樣將會導致頁面布局混亂。

  • 所以在開發(fā)中一定要避免出現(xiàn)高度塌陷的問題。




    
    Title
    
    .box1{
        border: 10px solid red;
    }
    



    a

結(jié)果:父元素box1的高度被子元素box2的a內(nèi)容撐開。

如何解決css高度塌陷問題




    
    Title
    
    .box1{
        border: 10px solid red;
    }
    .box2{
        width: 100px;
        height: 100px;
        background-color: greenyellow;
    }

    



    a

結(jié)果:父元素的高度被子元素的高度100撐開。

如何解決css高度塌陷問題

若為子元素設置浮動:




    
    Title
    
    .box1{
        border: 10px solid red;
    }
    .box2{
        width: 100px;
        height: 100px;
        background-color: greenyellow;
        float: left;
    }
    .footer{
        height: 50px;
        background-color: pink;
    }
    



    



結(jié)果:子元素浮動,父元素沒有了高度。footer向上移動。

如何解決css高度塌陷問題

為父元素設置高度,避免塌陷:

.box1{
        border: 10px solid red;
        height: 100px;/* 設置父元素的高度*/
    }

結(jié)果:

如何解決css高度塌陷問題

但是當子元素的高度較高時,又會產(chǎn)生溢出的問題。父元素的高度一旦固定,父元素的高度將不能自動適應子元素的高度,所以這種方案不推薦使用:

  .box2{
        width: 100px;
        height: 200px;
        background-color: greenyellow;
        float: left;
    }

結(jié)果:

如何解決css高度塌陷問題

2. 解決塌陷問題

根據(jù)w3c的標準,在頁面中的元素都有一個隱含的屬性叫做Block Formatting Context, 簡稱BFC。該屬性可以設置打開或者關閉,默認是關閉的。
當開啟元素的BFC以后,元素將會具有如下的特征:
(1) 父元素的垂直外邊距不會和子元素重疊
(2) 開啟BFC的元素不會被浮動元素所覆蓋
(3) 開啟BFC的元素可以包含浮動的子元素

如何開啟元素的BFC:

設置元素浮動

使用這種方式,雖然可以撐開父元素,但是會導致父元素的寬度丟失,而且使用這種方式也會導致下邊的元素上移,不能解決問題

設置元素絕對定位

也有上面的問題

設置元素為inline-block

可以解決問題,但是會導致寬度丟失,不推薦使用這種方式

將元素的overflow 設置為一個非visible的值

推薦方式: 將父元素overflow設置為hidden,是副作用最小的開啟BFC的方式




    
    Title
    
    .box1{
        border: 10px solid red;
        overflow: hidden;
    }
    .box2{
        width: 100px;
        height: 100px;
        background-color: greenyellow;
        float: left;
    }
    .footer{
        height: 50px;
        background-color: pink;
    }
    



    



結(jié)果:

如何解決css高度塌陷問題

注意: 但是在IE6中是不支持BFC的。所以引入hasLayout。

在IE6中有另一個隱含的屬性叫做hasLayout,該屬性的作用和BFC類似,所以IE6瀏覽器可以通過開hasLayout來解決問題。開啟方式有很多,但是副作用最小的方式是: 直接將元素的zoom設置為1即可。

zoom表示放大的意思,后邊跟一個數(shù)值,寫幾就是將元素放大幾倍。

zoom:1 表示不放大元素,但是通過該樣式可以開啟hasLayout。

zoom這個樣式,只在IE中支持,其他瀏覽器都不支持。

zoom: 1;/* 兼容ie6*/
overflow: hidden;/* 兼容非ie6*/

關于“如何解決css高度塌陷問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


網(wǎng)站欄目:如何解決css高度塌陷問題
網(wǎng)頁路徑:http://weahome.cn/article/jpgiic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部