美文网首页
解决高度塌陷

解决高度塌陷

作者: c_gentle | 来源:发表于2020-08-16 22:48 被阅读0次

    什么是高度塌陷:
    父元素不设置高和宽,由子元素把父元素撑起来,但是会发生高度塌陷问题。

    <!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>
    

    相关文章

      网友评论

          本文标题:解决高度塌陷

          本文链接:https://www.haomeiwen.com/subject/vcoxjktx.html