当我想将两个元素彼此相邻放置时,像这样
<div class="wrapper">
<div class="left"> ... </div>
<div class="right"> ... </div>
</div>
我可以使用以下CSS:
.left, .right {
display:inline;
float:left;
}
但是我如何让包装器调整它的高度到子元素,没有clear:both
属性?
由于没有明确指定高度,因此设置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;
}
您可以使用该overflow
样式。通过不为父级指定任何大小,实际上不会溢出任何内容,但它仍会使其包含其子级:
.wrapper {
overflow: hidden;
}
旁注:display:inline
对设置为浮动的元素进行设置是没有意义的,因为浮动元素始终是块元素:
.left, .right {
float:left;
}
(display:inline
然而,在浮动元素上使用用于解决 IE6 中的双边距错误,因此可以在旧代码中找到它。)