2016-07-04 129 views
1

我想根據外部div更改內部div高度。 在我的情況下,我有兩個內部div,一個固定高度,外部div根據那個擴展其高度(我在那裏使用'clearfix')。但我需要其他內部的div也改變其高度的外部高度 身高:100%;不工作。 這是一個JsFiddle鏈接來顯示我的問題。 https://jsfiddle.net/qjsqxk7j/18/展開內部div高度以符合外部div高度

HTML - >

<div class="outer clearfix"> 
    <div class="col-xs-3 left"> 
    </div> 
    <div class="col-xs-9 right"> 
    <div class="inner"> 
    <label>sssss</label> 
    <button class="btn-default"> 
     sss 
    </button> 
    </div> 
</div> 

CSS - >

.right { 
    height: 100%; 
    background-color: blue;  
} 
.left { 
    height: 200px; 
    background-color: red; 

} 
.inner{ 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%) 
} 
.outer { 
    background-color: yellow; 
    position: relative; 
    max-width : 500px; 
} 

其實我想要的藍格採取左側所有的黃色空間和按鈕和標籤涉及到它的垂直中心。 (我想讓我的外部div得到其內部div高度之一併相應地改變。然後當外部div高度發生變化時,其他內部div也必須改變其高度,但它不會)。

回答

0

在這裏看到jsfiddle

我用display:table-cell在2列(左,右)和display:table.outer。對於這個工作,你需要覆蓋從引導給出的列

代碼添加

.left,.right { 
display:table-cell; 
float:none; 
vertical-align:middle; 
} 
.outer { 
display: table; 
} 

或用少許JQ的float:leftjsfiddle

代碼:

var hgt = $(".outer").height() 
$(".left").height(hgt) 

讓我知道這是你在找什麼

+0

部分是。它消除了內部元素的垂直中心對齊。我的最終輸出應該是這樣的 https://jsfiddle.net/qjsqxk7j/31/ 但我會嘗試與您的建議。 – bashi

+0

只需將'vertical-align:middle;'添加到'.left,.right';更新了我的答案和jsfiddle鏈接 –

+0

謝謝。有效。 display:table-cell是否會覆蓋Bootstrap網格行爲?你認爲有沒有辦法讓我保持Bootstrap網格並得到相同的結果(沒有JQuery)。 – bashi

0

更改一些CSS下面的代碼刪除您的評論的代碼

.right { 
    height: 200px; 
    background-color: red; 

} 
.left { 
    height: 100%; 
    background-color: blue;  
} 
.inner{ 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%); 
} 

.outer { 
    background-color: yellow; 
    position: relative; 
    max-width : 500px; 
    height:200px; 

} 

https://jsfiddle.net/qjsqxk7j/25/

+0

謝謝@Lalji的回覆。我想要一種方法來做到這一點,而不會給外部類別任何高度。 (在我的實際情況下,'左'div高度發生變化,我只想讓左內部div具有固定高度) – bashi

+0

移除外部高度並嘗試 –

+0

移除您放置的外部高度?那麼它就和我提出的問題一樣。它不工作。 – bashi

0

嘗試是的,我有從父元素除去clearflex因爲它透明浮法兩個子元素。當子元素高度增加時,這種增加和減少隱藏,反之亦然,即父元素相同。

.outer{ 
    width:100%; 
    height:auto; 
    background:yellow; 
    position:relative; 
    border-bottom:1px solid #111; 
    display:table; 
} 
.outer > .right{ 
    width:50%; 
    height:auto; 
    background:red; 
    float:left; 
    word-break : break-all; 
} 
.outer > .left{ 
    width:50%; 
    height:auto; 
    background:blue; 
    float:left; 
} 
+0

我想我的外部div獲得其內部div高度之一,並相應地改變。所以當外部div高度發生變化時,其他內部div也必須改變其高度。但它不會。 – bashi

+0

感謝您的回覆。似乎它不會幫助。我想在一個內部div有一個給定的高度的情況下。如果我必須更改代碼。>> .right {height:200px; }它不工作。 – bashi

+0

@bashi工作,它保持你的.outer高度與200px的紅色相同;這就是爲什麼我將border-bottom分配給.outer div以查看它的高度是否在增加。 – frnt