css清除浮動定位形成的異常

清除浮動是爲了解決高度塌陷的問題:內層有好幾個div有寬有高,而且選擇了浮動定位,可是外層的div卻並無設置寬高。在非IE瀏覽器(如Firefox)下,當容器的高度爲auto,且容器的內容中有浮動(float爲left或right)的元素,在這種狀況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢出到容器外面而影響(甚至破壞)佈局的現象。這個現象叫浮動溢出,爲了防止這個現象的出現而進行的CSS處理,就叫CSS清除浮動。html

沒有清除浮動前:高度爲0html5

清除浮動後:有了高度chrome

 

常看法決方案:瀏覽器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    *{
        padding: 0;
        margin: 0;
        border: 0;
        outline: 0;
    }
    p{
        line-height: 150%;
    }
    /*清除浮動方法3 全局 for FF/chrome/opera/IE8== */
    :after {clear:both;content:'.';display:block;width: 0;height: 0;visibility:hidden;}  

    .test{
        
        background: rgb(164, 206, 188);
        margin: 0 auto;
        width: 150px;

        /*清除浮動方法2  clear:overflow*/
        /*height: auto;
        overflow: auto;
        zoom:1;*/
    }
    .div1{
        float:left; 
        width:50px;
        height:50px;
        text-align: center;
        line-height: 50px;
        border-bottom: 1px #ddd solid;
    }
</style>
<body>

    <div class="test">
        <div class="div1">1</div>
        <div class="div1">2</div>
        <div class="div1">3</div>
        <!-- 清除浮動方法1  clear:both -->
        <!-- <div style="clear:both;"></div> -->
    </div>

</body>
</html>

 

 

固然,你也能夠直接給外層加個寬高 == 簡單粗暴又有效框架

或者,內層選擇html5的分列顯示,也是很好的方案佈局

再或者,直接用一些框架的欄柵結構spa

相關文章
相關標籤/搜索