• 清除浮动原理


    在css中,我们有时会用到浮动属性。

    简单来说,标准流文档中,块元素会占据整行来显示,比如div,h标签等。后面的标签会依次往后。

    但是用了浮动之后,就会脱离文档流,意味着后面的标签可能会被挡住,引起布局混乱。因为浮动元素无法撑起父元素的高度(高度塌陷)。

    那么又想使用浮动属性,又想让后面元素按标准文档流布局应该怎么办呢?

    此时,就需要使用清除浮动的方法。

    清除浮动就是让父元素高度恢复到正常状态,浮动元素后面的元素能按正常文档流来继续显示。

    清除浮动前:

    清除浮动后:

     清除浮动的方法也有很多。

    1、浮动元素后面添加一个空标签。

      不建议使用,因为会增加很多无意义标签。与代码语义化的原则相违背。

      <div class="wrap">
        <div class="box float-left">左浮动</div>
        <div class="box float-right">右浮动</div>
        <div class="clear-float"></div>
    
        <div>我位于浮动元素后面</div>
      </div>
     .float-left {
          float: left;
        }
        .float-right {
          float: right;
        }
        .clear-float {
          clear: both;
        }

    2、父元素设置overflow:hidden属性。如图:

    会出现这种非常规布局,谨慎使用。

    3、after 伪类。最常用。

      不用添加新标签,给浮动元素的父元素添加。

    布局:

      <div class="wrap">
        <div class="box float-left">左浮动</div>
        <div class="box float-right">右浮动</div>
      </div>
      <div>我位于浮动元素后面</div>

    清除前:

    清除后:

     css代码:

      .wrap::after {
          content: 'saf';
          display: block;
          clear: both;
          height: 0;
          visibility: hidden;
        }

    原理如下:

    clear 属性是不让元素的周围有浮动元素。属性值可以为left、right、both、none、inherit。

    clear 属性只能作用在块级元素上。因此要设置 display:block。clear:both,则让清除两侧的浮动。

    一般常写的时候还会加上后面两句:height:0;visibility:hidden;

    这两句和content的值有关,如果content有值而你不想显示,则可以加上这两句,如果content为空,则不加也可以。

    如果你需要显示content内容,则不可以加。

  • 相关阅读:
    php过滤表单提交的html等危险代码
    浅析php过滤html字符串,防止SQL注入的方法
    PHP简单判断手机设备的方法
    如何用Math.max.apply()获取数组最大/小值
    Ubuntu14.04升级到Ubuntu16.04
    4、python数据类型之列表(list)
    3、python数据类型之字符串(str)
    centos7网卡名称修改以及配置
    rsync简单总结
    8、kvm虚拟机添加硬盘
  • 原文地址:https://www.cnblogs.com/xguoz/p/12829490.html
Copyright © 2020-2023  润新知