代码之家  ›  专栏  ›  技术社区  ›  Will

浮动divs+动态高度

  •  0
  • Will  · 技术社区  · 15 年前

    想法:我有一个容器DIV,里面有两个DIV,就像一页上的两列。

    问题:我必须使用css的“float”属性才能让两个div彼此相邻显示,但是当我将float:left或right应用于div时,未浮动的父div不会拉伸到子div的大小,因此背景会消失。我知道一个javascript技巧来解决这个问题,但是有没有简单、干净的CSS解决方案我没有?

    3 回复  |  直到 14 年前
        1
  •  4
  •   stevenmc    14 年前

    向父级添加“overflow:auto;”应该可以工作。

    在浮动元素起作用后立即添加类似的内容:

    <div class="parent">
        <div style='float:left;'></div>
        <div style='float:right;'></div>
        <div class='clear'></div>
    </div>
    

    然后只需添加.clear类到您的CSS中:

    .parent{
        overflow:auto;
    }
    .clear{
        clear:both;
    }
    
        2
  •  2
  •   Matchu    15 年前

    使用ClearFix技术应该可以成功地拉伸父元素。

    您可以将清除元素添加到父级的底部:

    HTML

    <div id="parent">
        <div class="child"></div>
        <div class="child"></div>
        <div class="clear"></div>
    </div>
    

    CSS

    .clear { clear: both }
    

    或者您可以对父元素应用css clearfix hack。

    CSS

    .parent { overflow: auto }
    

    在某种意义上,这是一种权衡。这感觉更像是黑客:额外的标记,或者CSS,这有点像是在做你想做的事情?

        3
  •  0
  •   Genady Sergeev    15 年前

    使用display:inline块而不是float。应用于块元素的内联块使它们显示为内联。因此,如果容器具有类容器,则需要使用以下CSS:

    .container div
    {
         display:inline-block;
    }
    

    对于IE6和7,只能使用display:inline,它的行为方式与inline块相同。