Elemente je nach Fenstergröße untereinander oder nebeneinander anzuordnen, ist eine gängige Aufgabe bei einem responsiven Layout, wie z. B. hier:
Flexbox in der Flexbox
Unkonventionell ist lediglich der Ansatz des TO, dies über Zeilenumbrüche zu realisieren. Ebenfalls gebräuchlich ist dem gegenüber die Lösung, die ich in #5 beschrieben haben.
BTW: Wenn man es denn mit Zeilenumbrüchen regeln will, kann man auch direkt das br-Element ein- und ausschalten: