• 学习经常遇到的浮动(float)


    参考自 小辉随笔:

    https://www.cnblogs.com/lchsirblog/p/9582989.html

    一、什么时候需要使用浮动

    最常见的情景是:多个块级元素(如div)需要同一行显示。

    <div class="data-float-parent">
        <div class="data-float-child1"></div>
        <div class="data-float-child2"></div>
    </div>

    如上,如要要求 child1 和 child2 同行显示,需要给这两个 div 的样式设置 float: left; ,在父元素没有高度的前提下,会导致父元素高度塌陷。

     如果能确定父元素高度,给一个 height 值就可以解决。

    二、清除浮动

    (1)在父元素的最后加一个冗余元素并为其设置 clear:both

    <div class="data-float-parent">
        <div class="data-float-child1"></div>
        <div class="data-float-child2"></div>
        <div class="clear"></div>
    </div>
           .data-float-parent{
                width: 200px;
                /*height: 200px;*/
                border: 1px solid red;
            }
            .data-float-child1{
                width: 100px;
                height: 100px;
                float: left;
                background-color: green;
            }
            .data-float-child2{
                width: 100px;
                height: 100px;
                float: left;
                background-color: orange;
            }
            .clear{
                clear: both;
            }

    缺点:很明显冗余元素不符合语义化

    (2)使用伪元素 :after ,添加一个类 clearfix(荐)

    <div class="data-float-parent clear-float">
        <div class="data-float-child1"></div>
        <div class="data-float-child2"></div>
    </div>
         .clear-float:after{
                content: "";
                display: table; /*采用此方法可以有效避免浏览器兼容问题*/
                clear: both;
            }

    这是推荐的做法,但 :after 在 IE6/IE7 不兼容

    (3)父元素 BFC(IE8) 或 haslayout(IE6/IE7)

         .clear-float{
                overflow: hidden;
                zoom: 1;
            }
            /* zoom:1; 兼容IE6 */

    注:display:inline-block 也可以实现多个div并排显示,但只能是从左向右。

  • 相关阅读:
    VS2012 窗口布局, update1 和 英语语言包 离线安装方法
    C/C++ 笔记
    MFC学习笔记
    理解虚基类、虚函数与纯虚函数的概念
    ffmpeg使用
    gif制作 & word2007插入gif
    WIN8电脑开机怎么进入安全模式啊?
    vs2012 win8 64 visual assistX 中文 ??
    21 获取文件大小的方法
    20 线程中添加超时的方法
  • 原文地址:https://www.cnblogs.com/zhuxingqing/p/11131041.html
Copyright © 2020-2023  润新知