zoukankan      html  css  js  c++  java
  • css 清除浮动

    清除浮动是为了清除使用浮动元素产生的影响。浮动的元素,高度会塌陷,而高度的塌陷使我们页面后面的布局不能正常显示。

      1、父级div定义height;
      2、父级div 也一起浮动;
      3、常规的使用一个class;
    .clearfix::before, .clearfix::after {
              content: " ";
              display: table;
          }
          .clearfix::after {
              clear: both;
          }
          .clearfix {
              *zoom: 1;
          }
    
    
      4、SASS编译的时候,浮动元素的父级div定义伪类:after
    &::after,&::before{
              content: " ";
              visibility: hidden;
              display: block;
              height: 0;
              clear: both;
          }
    
      解析原理:
      1) display:block 使生成的元素以块级元素显示,占满剩余空间;
      2) height:0 避免生成内容破坏原有布局的高度。
      3) visibility:hidden 使生成的内容不可见,并允许可能被生成内容盖住的内容可以进行点击和交互;
      4)通过 content:"."生成内容作为最后一个元素,至于content里面是点还是其他都是可以的,例如oocss里面就有经典的 content:".",有些版本可能content 里面内容为空,一丝冰凉是不推荐这样做的,firefox直到7.0 content:”" 仍然会产生额外的空隙;
      5)zoom:1 触发IE hasLayout。
    
      通过分析发现,除了clear:both用来闭合浮动的,其他代码无非都是为了隐藏掉content生成的内容,这也就是其他版本的闭合浮动为什么会有font-size:0,line-height:0。
    

    容器包含若干浮动元素时如何清理浮动

    1. 容器元素闭合标签前添加额外元素并设置clear: both
    2. 父元素触发块级格式化上下文(见块级可视化上下文部分)
    3. 设置容器元素伪元素进行清理推荐的清理浮动方法
    * 在标准浏览器下使用
    * 1 content内容为空格用于修复opera下文档中出现
    *   contenteditable属性时在清理浮动元素上下的空白
    * 2 使用display使用table而不是block:可以防止容器和
    *   子元素top-margin折叠,这样能使清理效果与BFC,IE6/7
    *   zoom: 1;一致
    
    .clearfix:before,
    .clearfix:after {
        content: " "; /* 1 */
        display: table; /* 2 */
    }
    
    .clearfix:after {
        clear: both;
    }
    
    * IE 6/7下使用
    * 通过触发hasLayout实现包含浮动
    .clearfix {
        *zoom: 1;
    }
     
  • 相关阅读:
    PAT 1012 数字分类
    PAT 1046 划拳
    PAT 1021 个位数统计
    PAT 1003 我要通过!
    PAT 1031 查验身份证
    安装swoole
    PHP yield 分析,以及协程的实现,超详细版(上)
    PHP性能优化利器:生成器 yield理解
    swoole深入学习 8. 协程 转
    swoole| swoole 协程初体验 转
  • 原文地址:https://www.cnblogs.com/passkey/p/10118050.html
Copyright © 2011-2022 走看看