zoukankan      html  css  js  c++  java
  • 子div设置float后会导致父div无法自动撑开

    本文是从简书复制的, markdown语法可能有些出入, 想看"正版"和更多内容请关注 简书: 小贤笔记

    注: 文章部分转载 彩泉 - 博客园

    原因:内部的DIV因为float:left之后,就丢失了clear:both和display:block的样式,所以外部的DIV不会被撑开。

    以下是几种解决办法(假设父div的class为“container”):

    • 方法1、使用伪类
    container::after{
        display: block;
        height:0;
        content: '';
        clear: both;
    }
    container{
        display: inline-block; /*第一种撑开办法,底下会有部分被遮到,所以添加这行,就完美了*/
    }
    
    • 方法2、不撑开的原理是overflow不可见,所以给父div添加overflow:auto;就行,IE要用_height:1%;
    container{
        overflow: auto;/*让主要内容区随内容自动撑开*/
        overflow-y:hidden;/*把出现的滚动条隐藏,但是底下会被遮到一点,不完美*/
         _height:1%;/*对IE的hack*/
    }
    
    • 方法3、可以专门最后添加一个子div用来清除浮动:<div class="clear"></div>
      设置样式.clear{clear:both; font-size:0; height:1%;}

    • 方法4、可以设置父div的高度(也就是手动撑开,不灵活);

    • 方法5、直接给父div设置 display: inline-block; 这样也自动撑开

    • 方法6、直接给子div设置 display: inline-block; 也能自动撑开,但是排版问题有待研究学习

    • 方法7、从网上还发现了一种方法,给父div增加属性:display:table;

    • 方法8、 子div浮动我就套不住你?OK,我让父div也浮动: 父div设置 float: left; 也可以

  • 相关阅读:
    游千佛塔有感
    时刻坚持高标准:成大事者的十条“箴言”
    谁愿意嫁给我这样的人
    成功的秘诀之一,就是敢于提出大设想、大思考
    寒冬里的暖阳
    世界最伟大的管理原则
    把你藏在心里
    登天门有感
    办公室保持最佳状态的诀窍
    “领悟”的价值是什么?思维能力训练问答
  • 原文地址:https://www.cnblogs.com/shenxianhui/p/9361912.html
Copyright © 2011-2022 走看看