如何在100%的td内获得div高度100%

gma*_*man 20 css

这个问题似乎在stackoverflow上至少有10次被问到,但其中没有一个实际上有答案.这个问题略有不同,因为问题出现在Firefox中.

我的table身高100%,tr身高100%.我将边界设置为td我能看到的东西.我看到它td是100%的预期.我把divtd并将其设置为高100%.它在Chrome中是100%.在Firefox中它不是100%.

我该如何解决?

<!DOCTYPE html>
<html>
<head>
<style>
body, html {
    width: 100%;
    height: 100%;
    padding: 0px;
    margin: 0px;
}
.full {
    width: 100%;
    height: 100%;
    border: 10px solid red;
}
#content {
    width: 100%;
    height: 100%;
}

#content>table {
    width: 100%;
    height: 100%;
}
#content>table>tbody>tr>td {
    border: 10px solid blue;
    width: 50%;
}
#container {
    width: 100%;
    height: 100%;
    border: 10px solid black;
}
</style>
</head>
<body>
<div id="content">
  <table>
    <tr>
      <td>
        <div id="container">
          <div class="full">
            foo
          </div>
        </div>
      </td>
    </tr>
  </table>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是一个片段

    body, html {
        width: 100%;
        height: 100%;
        padding: 0px;
        margin: 0px;
    }
    .full {
        width: 100%;
        height: 100%;
        border: 10px solid red;
    }
    #content {
        width: 100%;
        height: 100%;
    }

    #content>table {
        width: 100%;
        height: 100%;
    }
    #content>table>tbody>tr>td {
        border: 10px solid blue;
    }
    #container {
        width: 100%;
        height: 100%;
        border: 10px solid black;
    }
Run Code Online (Sandbox Code Playgroud)
    <div id="content">
      <table>
        <tr>
          <td>
            <div id="container">
              <div class="full">
                foo
              </div>
            </div>
          </td>
        </tr>
      </table>
    </div>
Run Code Online (Sandbox Code Playgroud)

在Chrome中你会看到

 bbbbbbbbbbb
 b#########b
 b#rrrrrrr#b
 b#r     r#b
 b#r     r#b
 b#r     r#b
 b#rrrrrrr#b
 b#########b
 bbbbbbbbbbb
Run Code Online (Sandbox Code Playgroud)

而在Firefox中它是

 bbbbbbbbbbb
 b         b
 b#########b
 b#rrrrrrr#b
 b#r     r#b
 b#rrrrrrr#b
 b#########b
 b         b
 bbbbbbbbbbb
Run Code Online (Sandbox Code Playgroud)

其中b =蓝色td.#=黑色div应该是100%.r =红色内部div也应该是100%(显然在任何一种情况下).这是黑色的错误.

在这种情况下,我需要修复哪些CSS才能让Firefox像Chrome一样运行?

PS:是的我需要一张桌子.我正在显示表格数据.上面的示例简化为单个单元以简化调试.

Tom*_*zan 21

您还需要将td的高度设置为100%:

<td style="height: 100%">
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

  • 2019 年 Chrome 中唯一对我有用的是这个解决方案:/sf/answers/1994086811/ 基本上,你设置 `&lt;tr style="height: 100%;"&gt;` 和 `&lt;td样式=“高度:0;”&gt;`。我不知道为什么会这样,但它确实有效:( (5认同)