Есть три блока. Большой, средний и маленький.
Самый большой может увеличиваться в размерах на неизвестную величину.
Самый маленький имеет фиксированную ширину и любую высоту. Если по высоте он меньше среднего блока, то большому блоку он не мешает, и стоит над ним.
Средний имеет фиксированную высоту, но по ширине должен занять все доступное место до маленького блока.
Как на картинке в верхней половине.
Но! Маленький блок может вдруг увеличиться в высоту на неизвестное значение, и в этом случае он должен автоматически переместиться правее большого блока, как на нижней половине картинки.
(4) Попроси получше, может тогда подумаю сделать или нет.
(5) Видимо да, тут нет знающих в этом вопросе, или очень редко заходят.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший