Поплавок означает .. ну, поплавок.Не фиксируется.Для предотвращения перемещения div2 под одним из div должен быть статическим, вероятно, левым.Тем не менее, это означает, что вам нужно правильно разместить div2 (и поместить его перед div1).Тогда проблема будет в том, что div2 всегда будет справа, даже если содержание div1 минимально.
Я не думаю, что можно делать то, что вы хотите, используя только HTML, который у вас есть.Вы должны будете использовать некоторые контейнеры div, чтобы предотвратить перенос.