zoukankan      html  css  js  c++  java
  • HTML&CSS基础-完善clearfix

                 HTML&CSS基础-完善clearfix

                                              作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.抛出问题

    1>.HTML源代码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>完善clearfix</title>
            
            <style type="text/css">
                .box1{
                    width: 300px;
                    height: 300px;
                    background-color: red;
                }
                
                .box2{
                    width: 300px;
                    height: 200px;
                    background-color: yellow;
                    /**
                     *     子元素和父元素相邻的垂直外边距会发生重叠,子元素的外边距会传递给父元素。
                     *     使用空的table标签可以隔离父子元素的外边距,阻止外边距的重叠。
                     */
                    margin-top: 100px;
                }
                
            </style>
        </head>
        <body>
            
            <div class="box1">
                <div class="box2"></div>
            </div>
        </body>
    </html>

    2>.浏览器打开以上代码渲染结果

    二.使用空table解决问题

    1>.HTML源代码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>完善clearfix</title>
            
            <style type="text/css">
                .box1{
                    width: 300px;
                    height: 300px;
                    background-color: red;
                }
                
                .box1:before{
                    content: "";
                    /*将一个元素设置为表格显示*/
                    display: table;
                }
                
                .box2{
                    width: 300px;
                    height: 200px;
                    background-color: yellow;
                    /**
                     *     子元素和父元素相邻的垂直外边距会发生重叠,子元素的外边距会传递给父元素。
                     *     使用空的table标签可以隔离父子元素的外边距,阻止外边距的重叠。
                     */
                    margin-top: 100px;
                }
                
            </style>
        </head>
        <body>
            
            <div class="box1">
                <div class="box2"></div>
            </div>
        </body>
    </html>

    2>.浏览器打开以上代码渲染结果

    三.完善clearfix的最终版本

    1>.HTML源代码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>完善clearfix</title>
            
            <style type="text/css">
                .box1{
                    width: 300px;
                    height: 300px;
                    background-color: red;
                }
                
                .box2{
                    width: 300px;
                    height: 200px;
                    background-color: yellow;
                    /**
                     *     子元素和父元素相邻的垂直外边距会发生重叠,子元素的外边距会传递给父元素。
                     *     使用空的table标签可以隔离父子元素的外边距,阻止外边距的重叠。
                     */
                    margin-top: 100px;
                }
                
                .box3{
                    border: 10px blue solid;
                }
                
                .box4{
                    width: 100px;
                    height: 100px;
                    background-color: deeppink;
                    float: left;
                }
    
                /**
                 *     解决父子元素的外边距重叠
                 * 
                 *     .box1:before{
                 *         content: "";
                 *          将一个元素设置为表格显示 
                 *         display: table;
                 *     }
                
                /**
                 *     解决父元素高度塌陷
                 * 
                 *     .clearfix:after{
                 *         content: "";
                    *         display: block; 
                 *         display: table;
                 *         clear: both;
                 *     }
                 * 
                 /
                 
                 /**
                  *  经过修改后的clearfix是一个多功能的,既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠
                  */
                 .clearfix:after, .clearfix:before{
                     content: "";
                     display: table;
                     clear: both;
                 }
                 /*兼容IE6*/
                 .clearfix{
                     zoom: 1;
                 }
                 
            </style>
        </head>
        <body>
            
            <div class="box3 clearfix">
                <div class="box4"></div>
            </div>
            
            <div class="box1 clearfix">
                <div class="box2"></div>
            </div>
        </body>
    </html>

    2>.浏览器打开以上代码渲染结果

  • 相关阅读:
    C语言-错误处理
    C语言-排序和查找
    PCB设计要点
    C语言-调试
    c++ 概述
    C语言-指针
    C语言-数组与指针 字符与字符串
    C语言-(void*)类型指针
    C语言-字符操作函数
    C语言-链表
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/9965383.html
Copyright © 2011-2022 走看看