2013-04-03 49 views

回答

4

您可以在每列上使用display: table-cell,在父項(*)上使用display: table。這將迫使你的「細胞」擁有相同的高度並留在同一排。

(*)將table-layout: fixed添加到此同一父級,因爲您希望使用精確的寬度,否則瀏覽器也將適應每個「單元」的內容。

小提琴:http://jsfiddle.net/PhilippeVay/sFBGX/2/

兼容性是IE8 +,如果需要回退的IE6/7是完全一樣的inline-block

較長的解釋在以前的答案:herethere用也不錯舊方法虛擬列(您的設計必須考慮到此技術)

+0

爲什麼你不能添加高度:707px;到#secondaryContent? – mgrahamjo 2013-04-03 23:02:34

+0

因爲不需要?如果你的內容更高?我從來不知道列的高度,除非在極少數情況下。 – FelipeAls 2013-04-03 23:05:33

+0

@mgahamjo:如果內容是動態生成的,您將不知道硬編碼的高度。 – 2013-04-03 23:05:56

0

以下內容添加到您的樣式表:

#content { 
    overflow: hidden; 
    clear: both; 
} 

#tertiaryContent, #secondaryContent { 
    padding-bottom: 100000px; 
    margin-bottom: -100000px; 
} 
+0

黑客解決方案。會嚴重工作與邊界,背景漸變等 – Hubro 2013-04-03 23:03:54

0

我知道jQuery是沒有標記,但在所有其他CSS的解決方案失敗的情況下,這裏是jQuery代碼來支持這一點。 (因爲網站上的怪hrml標記,浮動和其他的東西的)

我創造了這個jQuery代碼

$(document).ready(function(){ 
     var left = $("#left").height(); 
     var right = $("#right").height(); 

     if (left<=right) $("#left").css("height", right); 
     else $("#right").css("height", left); 
}); 

這個HTML標記

<div id="container"> 
    <div id="left">Short one</div> 
    <div id="right">Long one</div> 
<div> 

這個CSS

#container { 
    width: 100%; 
} 

#left { 
    background: red; 
    width: 100px; 
    float: left; 
} 

#right { 
    background: red; 
    width: 100px; 
    float: right; 
} 

http://jsfiddle.net/cQUep/1/

+0

請你解釋downvoting? – 2013-04-04 00:14:37

+0

我更喜歡上面的純css解決方案,但是對於某些日期可能有用的解決方案而言,+1 – DavidTonarini 2013-04-04 22:47:22