1. 程式人生 > 其它 >前端基礎---解決高度塌陷

前端基礎---解決高度塌陷

1. overflow: hidden

2. IE8以下 zoom: 1

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            
            .box1{
                border: 10px red solid;
                /*
                 * 根據W3C的標準,在頁面中元素都一個隱含的屬性叫做Block Formatting Context
                 *     簡稱BFC,該屬性可以設定開啟或者關閉,預設是關閉的。
                 * 當開啟元素的BFC以後,元素將會具有如下的特性:
                 *     1.父元素的垂直外邊距不會和子元素重疊    
                 *     2.開啟BFC的元素不會被浮動元素所覆蓋
                 *     3.開啟BFC的元素可以包含浮動的子元素
                 * 
                 * 如何開啟元素的BFC
                 *     1.設定元素浮動
                 *         - 使用這種方式開啟,雖然可以撐開父元素,但是會導致父元素的寬度丟失
                 *             而且使用這種方式也會導致下邊的元素上移,不能解決問題
                 *     2.設定元素絕對定位
                 *     3.設定元素為inline-block
                 *         - 可以解決問題,但是會導致寬度丟失,不推薦使用這種方式
                 *     4.將元素的overflow設定為一個非visible的值
                 *     
                 * 推薦方式:將overflow設定為hidden是副作用最小的開啟BFC的方式。    
                 
*/ /*overflow: hidden;*/ /* *但是在IE6及以下的瀏覽器中並不支援BFC,所以使用這種方式不能相容IE6。 * 在IE6中雖然沒有BFC,但是具有另一個隱含的屬性叫做hasLayout, * 該屬性的作用和BFC類似,所在IE6瀏覽器可以通過開hasLayout來解決該問題 * 開啟方式很多,我們直接使用一種副作用最小的: * 直接將元素的zoom設定為1即可 *
*/ /* * zoom表示放大的意思,後邊跟著一個數值,寫幾就將元素放大幾倍 * zoom:1表示不放大元素,但是通過該樣式可以開啟hasLayout * zoom這個樣式,只在IE中支援,其他瀏覽器都不支援 */ zoom:1; overflow: hidden; } .box2
{ width: 100px; height: 100px; background-color: blue; float: left; } .box3{ height: 100px; background-color: yellow; } </style> </head> <body> <div class="box1"> <div class="box2"></div> </div> <div class="box3"></div> </body> </html>