2012-04-05 66 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