假设你有一个div,给它一个确定的宽度,并在其中放置元素,在我的例子中是img和另一个div。

这个想法是,容器div的内容将导致容器div伸展,并成为内容的背景。但当我这样做时,包含div的区域会缩小以适应非浮动对象,浮动对象会一直向外,或者一半向外,一半向内,并且与大div的大小没有任何关系。

为什么会这样?是否有我错过的东西,我如何才能得到浮动项目伸展的高度包含div?


当前回答

这里的其他解对我不起作用——我的元素一直被切断。但是如果其他人使用bootstrap来这里,它对我来说是有效的,我显式地将中介行div的x轴边距设置为零,并设置了justify-content-between:

<div class='container p-2'>
  <div class='row mx-0 justify-content-between'>
    <div class='float-left'></div>
    <div class='float-right'></div>
  </div>
</div>

其他回答

W3Schools推荐:

将overflow: auto放在父元素上,它将“着色”整个背景,包括元素边距。浮动元素也会留在边框内。

http://www.w3schools.com/css/tryit.asp?filename=trycss_layout_clearfix

这里的其他解对我不起作用——我的元素一直被切断。但是如果其他人使用bootstrap来这里,它对我来说是有效的,我显式地将中介行div的x轴边距设置为零,并设置了justify-content-between:

<div class='container p-2'>
  <div class='row mx-0 justify-content-between'>
    <div class='float-left'></div>
    <div class='float-right'></div>
  </div>
</div>

在某些情况下,即当(如果)你只是使用float让元素在同一“行”上流动时,你可能会使用

display: inline-block;

而不是

float: left;

否则,在最后使用一个清晰的元素就可以了,即使它可能违背了需要一个元素来做应该是CSS的工作。

你可以很容易地做,首先,你可以使div伸缩和应用右或左对齐内容,你的问题就解决了。

< span style=" font - family:宋体;"> < font-family:宋体;font-family:楷体;font-family:楷体;font-family:楷体;font-family:楷体;font-family:楷体;font-family:楷体;> < / >按钮感觉 < / div >

最简单的方法是将overflow:隐藏在父div中,并且不指定高度:

#parent { overflow: hidden }

另一种方法是浮动父div:

#parent { float: left; width: 100% }

另一种方法使用clear元素:

<div class="parent">
   <img class="floated_child" src="..." />
   <span class="clear"></span>
</div>

CSS

span.clear { clear: left; display: block; }