Я сталкивался с этой проблемой раньше с помощью CSS, но, к сожалению, я не могу вспомнить, как я (если? Lol ..) исправил ее. По какой-то причине третий div зависает на дне второго.
Несмотря на это, я написал небольшой скрипт js, который работает, несмотря на то, что он довольно хакерский:
height = document.getElementById("col2").offsetHeight;
if (height <= 60) {
var col4 = document.getElementById("col4");
var margOrig = parseInt(col4.getStyle('margin-top'));
height = height + margOrig;
col4.style.marginTop = "-" + height + "px";
}
Размер 60 установлен здесь только для надуманного примера на JSfiddle. Это явно не завершено, это скорее набросок. Я не знаю, насколько последовательно будут заполняться столбцы вашего сайта и т. Д. И т. Д. Надеюсь, вы найдете решение CSS.
Вот скрипка, если хотите - http://jsfiddle.net/MmXne/11/
Извините, это не совсем то, что вы искали. Я потратил около часа, возиться с CSS и не повезло: - /
Edit2: еще лучший способ - вычесть высоту col2 из col1. Затем, если это >= 0
, запустите скрипт. Как только второй столбец становится длиннее первого, плавающее значение в любом случае портится, что является совершенно новой проблемой.