CSS制作網(wǎng)頁經(jīng)驗(yàn)分享:網(wǎng)頁浮動(dòng)的清理

字號(hào):

CSS制作網(wǎng)頁經(jīng)驗(yàn)分享:網(wǎng)頁浮動(dòng)的清理

    在進(jìn)行浮動(dòng)布局時(shí),大多數(shù)人都深知,在必要的地方進(jìn)行浮動(dòng)清理:

    。
    例如:
    

    
Some Content
    此時(shí)預(yù)覽此代碼,我們會(huì)發(fā)現(xiàn)最外層的父元素float container,并沒有顯示。這是因?yàn)樽釉匾蜻M(jìn)行了浮動(dòng),而脫離了文檔流,導(dǎo)致父元素的height為零。
    若將代碼修改為:
    

    
Some Content
    

    注意,多了一段清理浮動(dòng)的代碼。這是一種好的CSS代碼習(xí)慣,但是這種方法增加了無用的元素。這里有一種更好的方法,將HTML代碼修改為:
    

    
Some Content
    定義CSS類,進(jìn)行“浮動(dòng)清理”的控制:
    Code:
    .clearfix:after {
     content: “.”;
     clear: both;
     height: 0;
     visibility: hidden;
     display: block;
    }
    這是對(duì)Firefox進(jìn)行的處理,因?yàn)镕irefox支持生成元素,而IE所有版本都不支持生成元素
    .clearfix {
     display: inline-block;
    }
    /* 這是對(duì) Mac 上的IE瀏覽器進(jìn)行的處理 */
    * html .clearfix {height: 1%;}
    /* 這是對(duì) win 上的IE瀏覽器進(jìn)行的處理 */
    .clearfix {display: block;}
    /* 這是對(duì)display: inline-block;進(jìn)行的修改,重置為區(qū)塊元素*/
    會(huì)發(fā)現(xiàn)即使子元素進(jìn)行了浮動(dòng),父元素float container仍然會(huì)將其包圍,進(jìn)行高度自適應(yīng)。
    clear元素的margin-top被重置為零。