zoukankan      html  css  js  c++  java
  • 关于清除浮动的最佳方法

    刚才看了http://www.w3cfuns.com/article-1287-1.html的这篇文章

    才明白清楚浮动还有如此多的方法,作者总结了很多不够正确的方法,也给出了比较好的方法

    .clearfix:after {content:"."; display:block; height:0; visibility:hidden; clear:both; }
    .clearfix { *zoom:1; }

    优点:结构和语义化完全正确,代码量居中
    缺点:复用方式不当会造成代码量增加

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

    闭合浮动

    方法一:

    相对于空标签闭合浮动的方法代码似乎还是有些冗余,通过查询发现Unicode字符里有一个“零宽度空格”,也就是U+200B,这个字符本身是不可见的,所以我们完全可以省略掉 visibility:hidden了

        .clearfix:after {content:"200B"; display:block; height:0; clear:both; }
        .clearfix { *zoom:1; }

    方法二:不大理解,因为第一次见过display:table

        /* For modern browsers */
        .cf:before,.cf:after {
        content:"";
        display:table;
        }
        .cf:after { clear:both; }/* For IE 6/7 (trigger hasLayout) */
        .cf { zoom:1; }
  • 相关阅读:
    用户体验评价
    第十三周总结
    第十二周总结
    单词统计
    第十一周总结
    冲刺(十一)
    用户模板和用户场景
    冲刺(十)
    冲刺(九)
    IOS 学习记录
  • 原文地址:https://www.cnblogs.com/pilee/p/3551340.html
Copyright © 2011-2022 走看看