2013-06-05 2 views
0

Как, без фоновых трюков, установите столбец содержания № 3 равным красной колонке?CSS высота столбцов снова

<div class="container"> 
<aside> 
    content#1<br /> 
    content#1<br /> 
    content#1<br /> 
    content#1<br /> 
    content#1<br /> 
    content#1<br /> 
</aside> 
<div class="some"> 
    content#2<br /> 
    content#2 
</div> 
<div class="some"> 
    content#3 
</div> 

Красные и синие первые столбцы являются динамическими, но красный всегда является самым длинным.

Пример: http://jsfiddle.net/eakDL/2/

+0

Один из святых граалей CSS, охваченных несколькими блогами. Ищите «раскладку жидкости в 3 колонках» или аналогичную. – Ben

+1

Прост в использовании под 10 строк js, без необходимости libs. См. Мой ответ. :) – vdbuilder

ответ

1

Таким образом Вы добавляете следующие ЯШ:

setPositions = function(){ 
    var container = document.getElementById("container"); 

    var redHeight = container.children[0].offsetHeight; 
    var blueOneHeight = container.children[1].offsetHeight; 
    var blueOneBottomMargin = parseFloat(window.getComputedStyle(container.children[1]).marginBottom); 

    var bluenTwoTopMargin = parseFloat(window.getComputedStyle(container.children[1]).marginTop); 

    var blueTwoHeight = redHeight-(blueOneHeight+blueOneBottomMargin+bluenTwoTopMargin)+2; 

    container.children[2].style.height = blueTwoHeight+"px"; 
} 

к вашей скрипке, и вы получите this fiddle.

+0

Да! Это оно! Большое спасибо:) – kicaj

-1

Я добавил некоторые JQuery код

$(document).ready(function() { 
    $(".some").css("height", ($(".container").find("aside").height()/2) - 3); 
}); 

Попробуйте это: http://jsfiddle.net/eakDL/6/ Я не уверен, если я верно вас понял.

+0

Ваш скрипт работает для синего контейнера, который всегда одинаковый. – kicaj