纯CSS最小化高度标题,绝对定位的DIV内最大化身高

时间:2009-03-30 15:45:57

标签: javascript html css css-tables

我有一个HTML编辑器小部件,我希望在绝对定位的固定大小的DIV中显示。但是,我事先并不知道DIV的绝对大小,它可能会改变,就像用户调整窗口大小一样。

编辑自然有控件和可编辑区域。每个人都有自己的DIV。我希望控件占用尽可能多的空间,以及可编辑的区域来填充剩余的空间。

如果我使用表格,这很容易实现。我只是关闭边框和填充和边距,并将每个DIV放入其自己行中的单元格中,并可能在控件DIV上调整最大高度。这就是它的样子:

Base table http://img407.imageshack.us/img407/8435/table1.png

Same table with window resized another way http://img264.imageshack.us/img264/6438/table2p.png

请注意,可编辑部分占用尽可能多的空间而不会导致滚动条出现。

我已经熟悉了各种CSS示例,如果没有在调整大小上运行一些JavaScript就可以使得可编辑的DIV成为父级的高度减去控件的高度。

当然,我可以让父DIV显示:table和子DIV包裹在display:table-row DIVs和他们自己都有display:table-cell,但是......好吧......在这种情况下它确切地说与使用TABLE,TR和TD相同,但为了CSS纯度,丑陋十倍。 (为什么要打扰?)

所以,没有直接使用display:table&朋友,也没有TABLE / TR / TD,也没有JavaScript,有这样的纯CSS方式吗?换句话说,是否有一种纯粹的CSS说法,DIV1占据尽可能小的垂直空间,而DIV2占据父元素中剩余的垂直空间?

如果没有,我已经准备好停止订阅“纯CSS”的心态。这给我带来了足够的悲痛,只有很少的开发人员或最终用户的利益。

4 个答案:

答案 0 :(得分:1)

这个问题说明了我看到很多人最近遇到的问题:遵守“仅使用表格表格数据”规则,或者只使用表格并完成1/3的工作。这甚至是一个艰难的决定这一事实证明了我们都变得如此疯狂。忘记标准,使用表格,干净简单地完成。如果W3C遇到问题,他们可以在创建更好的替代方案后立即投诉。

答案 1 :(得分:1)

你只有很多选择。如果你想在不使用表的情况下使用表格式行为,那么使用display:table并给自己选择以后改变主意。这样,虽然标记中的丑陋(主观),对我来说更有意义:你最终会得到一些元素,但你不会被锁定在特定的布局中。

如果您不关心标记,请拉动扳机并使用表格。这在短期内会更容易。

我的问题:如果您不想使用JavaScript,您将如何实现编辑器控件?

答案 2 :(得分:0)

据我所知,使用宽度/高度的百分比应该可以正常工作。

答案 3 :(得分:0)

我是第二个完美的答案,但我会请你发疯,并尝试描述你想要它的样子。也许使用ascii-art或图形链接,我们知道您希望我们使用哪种布局来帮助您实现。

我还补充说,我最近没有再次睡觉,所以...如果我错过了一个明显的超级清晰的描述,你希望我们帮助你实现你的最大化真诚的歉意。 :)