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;
    }
     
  • 相关阅读:
    strace排除Linux服务器故障
    详解如何在linuxmint上用源码包安装nodejs
    linux 安装nodejs
    使用Vue实现购物车功能
    Vue项目中使用better-scroll
    vue项目中使用axios发送ajax
    在VUE的项目中使用字体图标以及Stylus
    Vue在使用组件中的一些需要记住的点
    Vue简易动画实现和使用animate.css库
    使用Vue.js进行数据绑定以及父子组件传值
  • 原文地址:https://www.cnblogs.com/passkey/p/10118050.html
Copyright © 2011-2022 走看看