【发布时间】:2014-03-08 21:02:09
【问题描述】:
问题似乎很“常见”,但在我看到的大量讨论中,我没有找到可接受的解决方案,也没有充分的理由说明根据“标准”根本不可能做到这一点。
问题陈述是
- HTML 中有块我可以控制其外部尺寸 - 宽度和高度
- 在此块中,我的 第一行 具有可变高度的内容,并且我需要此内容完全可见(即自动调整大小而无需滚动或剪切)...
- ...和第二行 - 它应该完全占用父块中的剩余空间,并且可以滚动溢出。
我记得它在一段时间前工作过(当将第一个 TR 设置为 1px 时,它实际上会精确扩展到适合内容所需的高度,第二个 TR 占用其余的高度),但试图现在在当前的主要浏览器中测试它,我发现它只在 Chrome 中有效。
所以问题是 - 是否可以在 HTML5/CSS3/跨浏览器标准中实现布局(有或没有表格)。正如您在屏幕截图中看到的那样,FF 和 IE 都不能“正确”控制(即如我所料)带有“红色”背景的嵌入式 DIV 的高度。
下面是截图和jsfiddle问题。
和示例 HTML
<div style="width: 200px; height: 200px;">
<table style="height: 100%; border: 1px solid blue;">
<tr>
<td style="height: 1px; background: green; border: 1px solid magenta;">
Variable Number<br/>
Of Lines<br/>
All should be visible<br/>
</td>
</tr>
<tr>
<td style="border: 1px solid magenta;">
<div id="subject" style="height: 100%; background: red; overflow-x: hidden; overflow-y: auto">
Variable<br/>
Number<br/>
Of Lines<br/>
Overflowing <br/>
lines<br/>
Can be scrolled<br/>
...<br/>
Variable<br/>
Number<br/>
Of Lines<br/>
Overflowing <br/>
lines<br/>
Can be scrolled<br/>
...<br/>
</div>
</td>
</tr>
</table>
</div>
【问题讨论】: