HTML/CSS 父 div 设置了 position:relative,子类高度变化,父 div 不跟着变化,如何解决

stephen · 2013年02月08日 · 最后由 stephen 回复于 2013年04月27日 · 14248 次阅读

父 div 设置了 position:relative,子类高度变化,父 div 不跟着变化,如何解决

height: auto; ?

子元素是不是浮动?

overflow: hidden;

给父元素增加这个样式

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

@rociiu 这样不行。@Rei 子元素没浮动,一个设置了 position:absolute;一个没设置。@Teddy 我试试!

@Teddy 好似都不行!

在父级元素中填充背景,css code 如下:

#container{ font-size:14px; width:300px; overflow:hidden; border:3px solid blue; margin:10px auto 0; color:#fff; background:url(http://www.men-ideal.com/images/unit1030.jpg) repeat-y; }
2 #leftSide{ width:100px; float:left; }
3 #rightSide{ width:190px; float:right; text-align:center}

目前,这种方法是最流行的,同样也是一种“欺骗性”的解决办法,不过除了多使用一张图片之外,都可以堪称完美,这也是笔者极力推荐的!

设置了 position:absolute 会让元素脱离了文档流的了。所以父元素不会随着子元素的高度变化而变化。

#6 楼 @stephen #3 楼 @Teddy

应该是这种方式吧:

#container{
   *zoom: 1; /* hack for IE6/7 */ }
    #container:before, #container:after{
        content: "";
        display: table; }
    #leftside{ float: left; }
    #rightside{ float: right; }

#6 楼 @stephen 你的解决方案中应该不是设置背景的缘故,是#container{}设置了 overflow: hidden;的缘故,overflow: auto;亦可,只不过我更加推荐我在 8 楼的方法,尔这应该是目前最常用的方式。

@1272729223 得闲试试!前端高手,膜拜!

#10 楼 @stephen 过奖,其实是 bootstrap 里面的方法。

@1272729223 有联系方式?

13 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号