如何让div在高处漂浮,同时漂浮在里面

ped*_*ath 118 html css overflow css-float

当它漂浮在里面时,我如何让div增加它的高度?我知道为宽度定义一个值并设置溢出到隐藏的工作.问题是我需要一个溢出可见的div.有任何想法吗?

Jak*_*ris 271

overflow:auto;在包含div上使得其中的所有内容(甚至浮动的项目)都可见,外部div完全包裹它们.看这个例子:

.wrap {
  padding: 1em;
  overflow: auto;
  background: silver;
 }
 
.float {
  float: left;
  width: 40%;
  background: white;
  margin: 0 1%;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrap">
  <div class="float">Cras mattis iudicium purus sit amet fermentum. At nos hinc posthac, sitientis piros Afros. Qui ipsorum lingua Celtae, nostra Galli appellantur. Petierunt uti sibi concilium totius Galliae in diem certam indicere. Ambitioni dedisse scripsisse iudicaretur.</div>
  <div class="float">Mercedem aut nummos unde unde extricat, amaras. A communi observantia non est recedendum. Quisque ut dolor gravida, placerat libero vel, euismod. Paullum deliquit, ponderibus modulisque suis ratio utitur.</div>
  </div>
Run Code Online (Sandbox Code Playgroud)

  • 是的,它有点工作,但它有生成滚动条的危险..对吧? (7认同)
  • 我尝试了这个,浏览器窗口右侧出现了一个约2em高的小滚动条. (2认同)

Nik*_*bak 14

清除浮子的方法不止一种.你可以在这里查看一些:http:
//work.arounds.org/issue/3/clearing-floats/

例如,clear:both可能适合你

#element:after {
    content:"";
    clear:both;
    display:block;
}

#element { zoom:1; }
Run Code Online (Sandbox Code Playgroud)


mip*_*phe 11

在许多情况下,overflow: auto;已经足够了,但为了完成和跨浏览器支持,请查看Clearfix,它将为所有浏览器完成工作.

让我们考虑以下标记..

<div class="clearfix">
   <div class="content">Content 1</div>
   <div class="content">Content 2</div>
</div>
Run Code Online (Sandbox Code Playgroud)

以及以下样式..

.content { float:left; }

.clearfix { ..from link.. }

如果没有clearfix,父级div将没有高度,因为它是浮动子级.clearfix将使父级考虑浮动子级.

  • Clearfix是额外的标记.只需给父div标记`overflow:auto;` (2认同)

ped*_*ath 7

我认为一个很好的方法是设置display: tablediv.