2012-04-05 32 views
0

这是一个相当普遍的问题,我还没有找到一个优雅的解决方案:如何分割两个元素之间的剩余高度?

我在div中有几个块元素(比方说4)。一个非常简单的垂直布局。

前两个元素具有固定的高度。其余的两个元素应该分割剩余的空间(即,身高 - 第一元素高度 - 第二元素高度)。

我知道我只能计算尺寸,但是有没有一种优雅的方式来实现这一点?

我想要一个使用原生浏览器功能(这是一个只在现代Firefox/Chrome版本上运行的内部应用程序,所以出血的边缘是好的)或jQuery/jQuery UI(我们已经使用它)的解决方案。

回答

0
+0

我已经扫描的规格,但不知道怎样解决我的问题与Flexbox的。小心一起来破解一个例子吗? – futlib 2012-04-05 06:20:54

+0

@futlib:我给出的链接有一个确切的东西,你要求作为一个例子(虽然'box-orient:horizo​​ntal',只有1个而不是2个固定高度的元素)。 – ninjagecko 2012-04-05 12:27:34

+0

谢谢,就是这样!我忽略了那篇文章,因为它说它已经过时并且符合规范(在更多的调查之后也允许这样做)。但是,在该文章的示例中添加供应商前缀使其可以正常工作。 – futlib 2012-04-23 13:01:51

0

玩弄percantage数值xx(%),而不是XX(PX)为高度和宽度。

1

你可以使用jQuery来计算高度。

假设我们有:

<div id="parent" style="height:300px; background-color: red;"> 
    <div id="first" style="height:100px; background-color: blue;"> 
    </div> 
    <div id="second" style="height:100px; background-color: #c6c6c6;"> 
    </div> 

    <div id="third" style="background-color: #75ac19;" ></div> 
    <div id="fourth" style="background-color: black;"></div> 
</div> 

<script type="text/javascript"> 
    var parrentHeight= $("#parent").height(); 
    var firstBlock = $("#first").height(); 
    var secondBlock = $("#second").height(); 
    var remainingHeight = parrentHeight - (firstBlock + secondBlock); 
    $("#third, #fourth").height(remainingHeight/2); 
</script> 
+0

这就是我一直在做的事情,我正在寻找现代化的选择。 – futlib 2012-04-05 08:57:42

+0

不幸的是,这个非常具体的样式没有方法,你可以通过传递参数来编写一个完成任务的JavaScript函数。 – undefined 2012-04-05 16:42:16