如何使div与父级相同(显示为表格单元格)

Chr*_*ris 30 html css multiple-columns

我有一个容器div包含三个子div(内容不同) - 每个div都和最高的一样高.我通过将容器设置为display:table和子div来显示:table-cell等来管理它.

一切正常,直到......

我在其中一个子div中插入了一个新的div并尝试使其高度:100% - 所以它会拉伸到与其父级相同的高度,但这不起作用.

请看我的JSFiddle:http://jsfiddle.net/bkG5A/

任何帮助将不胜感激!

HTML

<div class="container">
    <div class="child">
        a<br />a<br />a
    </div>
    <div class="child">
        a<br />a<br />a<br />a<br />a<br />a<br />a
    </div>
    <div class="child">
        <div class="content">
            a<br />a<br />a
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.container {
    display: table;
}
.child {
    width: 30px;
    background-color: red;
    display: table-cell;
    vertical-align: top;
}
.content {
    height: 100%;
    background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)

rei*_*der 32

另一个选择是将您的子div设置为 display: inline-block;

.content {
    display: inline-block;
    height: 100%;
    width: 100%;
    background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)

.container {
  display: table;
}
.child {
  width: 30px;
  background-color: red;
  display: table-cell;
  vertical-align: top;
}
.content {
  display: inline-block;
  height: 100%;
  width: 100%;
  background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="child">
    a
    <br />a
    <br />a
  </div>
  <div class="child">
    a
    <br />a
    <br />a
    <br />a
    <br />a
    <br />a
    <br />a
  </div>
  <div class="child">
    <div class="content">
      a
      <br />a
      <br />a
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


JSFiddle演示

  • 有趣的是,这在IE 10和FF 28中不起作用(即使我的解决方案在IE 10和FF中也不起作用),根本无法理解这两个浏览器. (5认同)

Kin*_*ing 8

您必须height明确地为父项(容器和子项)设置,这是另一种解决方法(如果您不想显式设置该高度):

.child {
  width: 30px;
  background-color: red;
  display: table-cell;
  vertical-align: top;
  position:relative;
}

.content {
  position:absolute;
  top:0;
  bottom:0;
  width:100%;
  background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)

小提琴

  • 另外,我认为使用绝对定位解决这个问题是个坏主意. (3认同)

Tom*_*pee 5

你可以使用这个CSS:

.content {
    height: 100%;
    display: inline-table;
    background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle