HTML/CSS 如何让 height 的属性值为所有元素的和

匿名 · 2012年02月23日 · 最后由 s200612321 回复于 2012年02月24日 · 2793 次阅读

上面这段代码中 类 main 的 height 始终是 20px 如何改动才能是类 main 的 height 的属性值为 20px??

HTML 代码没有哦

匿名 #2 2012年02月23日

好了 HTML 代码不让插入,我改成图片了

插入代码看文档啊!

不是直接设置成 height: 20px 就可以了么?

如何让 height 的属性值为所有元素的和???类 main 的 height 始终是 20px 如何改动才能是类 main 的 height 的属性值为 20px??没太明白。

这哥们表达能力有待提高啊

我想是要让 main 跟 aid 同样高吧?我是用 jquery 调整的。$(‘.main’).height($('.aid').height());

匿名 #8 2012年02月23日

原来大家没听明白呀!!我的意思是

在这里我明明用 div.content 吧 div.list-face 和 div.list-holder 包含起来,为什么 div.content 的高度是 0px 应该为 div.list-holder 的高度,也就是 295px。我在这里很不明白。

匿名 #9 2012年02月24日

#5 楼 @huyong36 原来大家没听明白呀!!我的意思是

在这里我明明用 div.content 吧 div.list-face 和 div.list-holder 包含起来,为什么 div.content 的高度是 0px 应该为 div.list-holder 的高度,也就是 295px。我在这里很不明白。

哦,原来是这个问题...加一个 overflow:hidden 即可

css 经典问题呀。布局浮动。

浮动问题。

如果有这样一个场景


.content { width: 960px; margin: 0 auto }
.sidebar { float: left; width: 200px }
.main { float: left; width: 760px }

<div class="content">
  <div class="sidebar">
     something
  </div>
  <div class="main">
     something...
  </div>
</div>

甚至这样,content 也不会随着 main 的增高而增高。简单来说父级里的子级只要有浮动,父级的高度就不会收到子级的影响。所以清除浮动吧。


.content { width: 960px; margin: 0 auto }
.main { float: left }

<div class="content">
  <div class="main">
     something...
  </div>
</div>

https://github.com/twitter/bootstrap/blob/master/docs/assets/css/bootstrap.css#L97

<div class="parent">
  <div class="children">
    xxx
  </div> 
</div>

子标签.children 如果 float 这个属性,就会影响父标签.parent 的高度,一般解决办法有几种:

一: .parent{ height:auto; overflow:hidden } 这样最简单,但会有一个问题,如果.parent 下有一个子标签有 position 属性且需要定位到.parent 容器外层,就会出现被遮住的情况

二:

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

这种方法在 IE 下可能不兼容

三:通杀且最恶心

<div class="parent">
  <div class="children">
    xxx
  </div>
  <div style=" clear:both; height:0px; overflow:hidden;"></div>
</div>

这个不会影响子标签的 position 效果,IE 兼容

匿名 #13 2012年02月24日

收到这么多的回复,这么多的兄弟帮助我,好感动,谢谢社区的兄弟们了!

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