Оберните их в содержащий div с цветом фона, примененным к нему, и получите очищающий div после «столбцов».
<div style="background-color: yellow;">
<div style="float: left;width: 65%;">column a</div>
<div style="float: right;width: 35%;">column b</div>
<div style="clear: both;"></div>
</div>
Обновлено с учетом некоторых комментариев и моих собственных мыслей:
Этот метод работает, потому что он по существу упрощает вашу проблему, в этом несколько старомодном методе я помещаю два столбца, за которыми следует пустой очищающий элемент, задача очищающего элемента - сообщить родителю (с фоном) это то, где поведение с плавающей точкой заканчивается, это позволяет родителю, по сути, визуализировать 0 пикселей высоты в позиции клира, который будет таким, какой будет самый высокий ранее плавающий элемент.
Причина этого заключается в том, что родительский элемент имеет такую же высоту, как и самый высокий столбец, затем на родительском элементе устанавливается фон, чтобы создать впечатление, что оба столбца имеют одинаковую высоту.
Следует отметить, что этот метод является 'oldskool', потому что лучшим выбором будет запускать это поведение вычисления высоты с помощью чего-то вроде clearfix или просто с переполнением: скрыто в родительском элементе.
Хотя это работает в этом ограниченном сценарии, если вы хотите, чтобы каждый столбец выглядел по-разному или имел разрыв между ними, то установка фона для родительского элемента не будет работать, однако есть способ получить это эффект.
Хитрость заключается в добавлении нижнего отступа ко всем столбцам до максимального ожидаемого размера, который может быть разницей между самым коротким и самым высоким столбцом. Если вы не можете решить эту проблему, тогда выберите большую цифру, тогда вы нужно добавить отрицательное нижнее поле того же номера.
Вам потребуется скрытое переполнение для родительского объекта, но в результате каждый столбец будет запрашивать визуализацию этой дополнительной высоты, предложенной полем, а не запрашивать компоновку такого размера (поскольку отрицательное поле препятствует вычислению ).
При этом родительский элемент будет отображаться с размером самого высокого столбца, при этом все столбцы будут отображаться с их высотой + размером используемого нижнего отступа, если эта высота больше родительского, тогда остальные просто обрезаются.
<div style="overflow: hidden;">
<div style="background: blue;float: left;width: 65%;padding-bottom: 500px;margin-bottom: -500px;">column a<br />column a</div>
<div style="background: red;float: right;width: 35%;padding-bottom: 500px;margin-bottom: -500px;">column b</div>
</div>
Пример этой техники можно увидеть на веб-сайте Bowers and Wilkins (см. Четыре горизонтальных прожектора в нижней части страницы).