2013-07-27 132 views
56

由於在以下小提琴中可以看到,我有兩個div s,包含在父親div中,這些父母已包含大div,我的目標是使這些小孩div s高度相等。拉伸子div高度以填充具有動態高度的父母

http://fiddle.jshell.net/y9bM4/

+2

檢查這些問題:http://stackoverflow.com/questions/3049783/how-to-make-a-floated-div-100-height-of-its-parent,http://stackoverflow.com/questions/157514 1 /瀏覽器窗口中進行-DIV-100-高度的-,http://stackoverflow.com/questions/13609531/make-an-div-100-height-css – mrzmyr

+0

@MikeHometchko有很多關於CSS,但不是CSS3。我想是這樣。 –

+1

@Mr_Green在「CSS」和CSS3之間的基本級別差異是微不足道的,所以我沒有看到問題。這是一個非常常見的問題,已經被問及應對死亡。 –

回答

33

的解決方案是使用display: table-cell使這些元件內聯,而不是使用display: inline-blockfloat: left的。

div#container { 
 
    padding: 20px; 
 
    background: #F1F1F1 
 
} 
 
.content { 
 
    width: 150px; 
 
    background: #ddd; 
 
    padding: 10px; 
 
    display: table-cell; 
 
    vertical-align: top; 
 
} 
 
.text { 
 
    font-family: 12px Tahoma, Geneva, sans-serif; 
 
    color: #555; 
 
}
<div id="container"> 
 
    <div class="content"> 
 
    <h1>Title 1</h1> 
 

 
    <div class="text">Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. 
 
     <br>Sample Text. Sample Text. Sample Text. 
 
     <br>Sample Text. 
 
     <br> 
 
    </div> 
 
    </div> 
 
    <div class="content"> 
 
    <h1>Title 2</h1> 
 

 
    <div class="text">Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text. Sample Text.</div> 
 
    </div> 
 
</div>

Working Fiddle

+0

但是,如果父元素是表格單元,則這不起作用。 –

28

使用display: flex伸展你的div S:

div#container { 
    padding:20px; 
    background:#F1F1F1; 
    display: flex; 
} 
.content { 
    width:150px; 
    background:#ddd; 
    padding:10px; 
    display:inline-block; 
    vertical-align:top; 
    margin-left: 10px; 
} 
.text { 
    font-family: 12px Tahoma, Geneva, sans-serif; 
    color:#555; 
} 

JSFIDDLE

-1

你可以用一點jQuery的

$(document).ready(function(){ 
    var parentHeight = $("#parentDiv").parent().height(); 
    $("#childDiv").height(parentHeight); 
}); 
+1

儘管一旦瀏覽器窗口被調整大小,這將會中斷,而CSS的仍將工作。 – SharpC

+0

這太重了。 -1 –

6

做很容易添加以下CSS:

父DIV:

style="display: flex;" 

對於孩子的div:

style="align-items: stretch;" 
+0

爲我修好了! –