1

当我想将两个元素彼此相邻放置时,像这样

<div class="wrapper">
    <div class="left"> ... </div>
    <div class="right"> ... </div>
</div>

我可以使用以下CSS:

.left, .right {
    display:inline;
    float:left;
}

但是我如何让包装器调整它的高度到子元素,没有clear:both属性?

4

2 回答 2

4

由于没有明确指定高度,因此设置overflow:auto将使父级包含子级。

.wrapper {
    overflow:auto;
}

jsFiddle在这里

.......之前 ......................之后

在此处输入图像描述

.left, .right {
    display:inline;
    float:left;
    height:50px;
    width:50px;
    background:blue;
    margin:10px;
}
.wrapper {
    overflow:auto;
    background:red;
    width:140px;
    display:block;
}
于 2013-09-21T22:55:50.153 回答
3

您可以使用该overflow样式。通过不为父级指定任何大小,实际上不会溢出任何内容,但它仍会使其包含其子级:

.wrapper {
    overflow: hidden;
}

旁注:display:inline对设置为浮动的元素进行设置是没有意义的,因为浮动元素始终是块元素:

.left, .right {
    float:left;
}

display:inline然而,在浮动元素上使用用于解决 IE6 中的双边距错误,因此可以在旧代码中找到它。)

于 2013-09-21T22:58:50.980 回答