这就是我所拥有的。它可以正常工作,但不完全是我想要的行为。



#container {
  height:250px; /*I want this to be set to auto*/
}             /*and have each child the height as the tallest.*/
#container > * {
  height:inherit;
  border-right: rgb(82,82,82) 2px solid;
  float:left;
}
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}
.div1,.div2 {
  width: 8.66666%
}
.nav, .div3 {
  width: 41.66666%
}

<div id="container" class="clearfix">
  <div class="div1"></div>
  <nav class="nav"></nav>
  <div class="div2"></div>
  <div class="div3"></div>
</div>





如果我已经设置了容器的高度,这行得通,但是当我将其设置为自动或100%时,高度是不一样的。当我走到绝对位置时,一切似乎都崩溃了。这是可以理解的。我的设计基于浮标和可变宽度。有人有任何建议吗,或者我只是运气不好?

最佳答案

弹性盒

最新的东西(8/16)但是支持的是IE10 +(很少),大多数Safari实现(以及一些较旧的FF / Chrome版本)都需要供应商前缀。



.container {
  display: flex;
}
.container > * {
  border-right: rgb(82, 82, 82) 2px solid;
}
.div1,
.div2 {
  width: 8.66666%;
  background: pink;
}
.nav,
.div3 {
  width: 41.66666%;
  background: orange;
}
nav {
  height: 100px;
}

<div class="container">
  <div class="div1"></div>
  <nav class="nav"></nav>
  <div class="div2"></div>
  <div class="div3"></div>
</div>





CSS表

具有IE8支持,但要调整较大/较小设备的布局时灵活性较差。



.container {
  display: table;
  table-layout: fixed;
  width: 100%;
}
.container > * {
  display: table-cell;
  border-right: rgb(82, 82, 82) 2px solid;
}
.div1,
.div2 {
  width: 8.66666%;
  background: pink;
}
.nav,
.div3 {
  width: 41.66666%;
  background: orange;
}
nav {
  height: 100px;
}

<div class="container">
  <div class="div1"></div>
  <nav class="nav"></nav>
  <div class="div2"></div>
  <div class="div3"></div>
</div>

关于html - 使父对象的所有 float 子代与最高子代的高度相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39154849/

10-09 14:21