zoukankan      html  css  js  c++  java
  • 清除浮动解决方案

    两种情况

    清除浮动包括清除子元素的浮动和清除上级元素的浮动,其中清除上级元素的浮动,只需设置clear为both就可以了,而清除子元素的浮动则可以用空标签法、clearfix方法或overflow方法。因清除上级元素的浮动比较简单,而空标签法清除子元素浮动会增加额外标签,所以在这里主要说clearfix方法、overflow方法及偶然发现的inline-block方法。

    为什么要清除浮动

    一个块级元素的高度如果没有设置height,那么其高度就是由里面的子元素来撑开的,如果子元素使用浮动,脱离了标准的文档流,那么父元素的高度会将其忽略,你可以使用firebug查看下如果不清除浮动,父元素会出现高度不够,那样如果设置border或者background都得不到正确的解析

    一、清除子元素浮动clearfix方法

    <ul id="demo1" class="nostyle demo clearfix">
       <li><img alt="img1" src=""></li>
       <li><img alt="img2" src=""></li>
       <li><img alt="img3" src=""></li>
    </ul>
    /*简洁版*/
    .clearfix:before, .clearfix:after {
        content:"";
        display:table;
    }
    .clearfix:after{
        clear:both;
        overflow:hidden;
    }
    .clearfix{
        zoom:1;
    }
    /* 经典版 */
    .clearfix:after {
        visibility: hidden;
        display: block;
        font-size: 0;
        content: " ";
        clear: both;
        height: 0;
    }
    * html .clearfix             { zoom: 1; } /* IE6 */
    *:first-child+html .clearfix { zoom: 1; } /* IE7 */
    注:clearfix的方法主要就是在浮动元素的父元素上加上一个clearfix class,然后这个父元素的框就会包括所有的浮动子元素。

    二、清除子元素浮动overflow方法

    /* overflow:auto */
    #demo2{
        overflow:auto;*zoom:1;
    }
    /*或 overflow:hidden */
    #demo2{
        overflow:hidden;*zoom:1;
    }
    注:这种方法主要是对父元素设置css,所以不需要加个class,下面的inline-block方法相同,只需设置父元素的css即可

    三、清除子元素浮动inline-block方法

    #demo3{
        display:inline-block;*display:inline;*zoom:1;
    }
  • 相关阅读:
    安装LVS安装LVS和配置LVS的工作比较繁杂
    移动web开发研究
    10个顶级的CSS UI开源框架
    Jquery使用tbody编辑功能实现table输入计算功能
    【开源】Hawk-数据抓取工具:简明教程
    55个最实用大数据可视化分析工具
    Apache本地服务无法自启动问题解决
    网站10大致命SEO错误
    企业管理:名片的重要性
    开发人员应该知道的SEO
  • 原文地址:https://www.cnblogs.com/onflying/p/3272647.html
Copyright © 2011-2022 走看看