Logic
Получение содержимого перетекать в другой контейнер, если другой контейнер пуст - это логика. В CSS нет механизма для логики. У вас должен быть хотя бы некоторый JavaScript или некоторая логика на стороне сервера (условное изменение статического HTML, отправленного сервером).
Если другой контейнер пуст, логика в JavaScript (или на стороне сервера) может изменить макет на тот, который позволяет потоку содержимого. Как это произойдет, и если это возможно только с помощью CSS, это отдельный вопрос. Сначала это касается только соответствующей логики.
Содержание потока
Получение содержимого перетекать в другой контейнер будет очень трудно сделать с помощью CSS в одиночку. Вообще говоря, это не то, как контент течет в браузерах. Я думаю, что самое близкое, что вы могли бы разумно получить, будет использовать CSS3 Columns, но они не поддерживаются IE9 или ранее. Что еще более важно, текущий стандарт не поддерживает использование columns of different widths. Так что, похоже, уже исключены столбцы CSS3.
Похоже, что единственным вариантом для потока контента является разбиение содержимого на фигуры соответствующего размера либо с помощью JavaScript, либо на стороне сервера, и размещение частей контента в соответствующих столбцах.
не могли бы вы предоставить свой html? –
Когда вы говорите «переполнение», вы имеете в виду как длинный абзац текста, который продолжается в следующем столбце? Или вы имеете в виду большую часть контента, которая увеличивается по ширине, чтобы покрывать обе колонки (что, в техническом плане, является коллапсирующей колонкой)? Они приведут к совершенно другим ответам. –