Aber warum ist das so???
Ich möchte dies gerne verstehen!
Gibt genug Artikel im Internet, die floats erklären.
Nur ne kurze Erklärung;
Das B-Div weiß nichts vom L-Div, deswegen ändert das B-Div auch nicht seine Position durch ein Float. (Der Float beeinflusst nur den Bereich vom B-Div, der mit Text gefüllt wird; deswegen befindet sich das „B“ auch nicht 'unter' dem grünen L-Kasten, sondern ist sichtbar daneben.)
Wenn du nun das B-Div rechts vom L-Div haben willst, musst du dem deswegen mit margin-left einen Abstand zur linken Seite geben, damit er eben nicht mehr unter dem L-Div liegt.