当我想将两个元素放在一起时,就像这样
<div class="wrapper">
<div class="left"> ... </div>
<div class="right"> ... </div>
</div>
我可以使用以下css:
.left, .right {
display:inline;
float:left;
}
但是如何让包装器调整它的子元素高度,而没有clear:both
属性?
答案 0 :(得分:4)
由于未明确指定高度,因此设置overflow:auto
将使父级包含子级。
.wrapper {
overflow:auto;
}
....... 之前 ..................... 之后
.left, .right {
display:inline;
float:left;
height:50px;
width:50px;
background:blue;
margin:10px;
}
.wrapper {
overflow:auto;
background:red;
width:140px;
display:block;
}
答案 1 :(得分:3)
您可以使用overflow
样式。通过不为父级指定任何大小,没有任何实际溢出的东西,但它仍然会使它包含它的子级:
.wrapper {
overflow: hidden;
}
旁注:在设置为float的元素上设置display:inline
是没有意义的,因为浮动元素是块元素:
.left, .right {
float:left;
}
(然而,在浮动元素上使用display:inline
用于对抗IE6中的双边距错误,因此可以在较旧的代码中找到它。)