Hallo,
Ich habe eine Website die aus viel Text mit Bildern besteht. Dabei gehört immer ein Textblock zu einem Bild und das Bild kann entweder rechts oder links vom Text stehen.
Die Bilder sind als IMG-Element mit CSS-Attribut float: left oder float: right eingefügt. Die Textblöcke sind in DIV-Elemente eingeschlossen.
Wenn das Bild rechts ist, dann funktioniert alles wie ich es will, wenn das Bild aber links ist, dann gibt es zwei Dinge die ich momentan nicht oder nur mäßig befriedigend realisiert habe.
-
Der Text ist länger als das Bild hoch ist. In dem Fall möchte ich, dass der Text nach dem Bild nicht unter dem Bild fortgesetzt wird sondern, dass die Zeilenanfänge auch nach dem Bild auf gleicher Ebene wie neben dem Bild sind.
-
Der Text ist kürzer als das Bild hoch ist. In dem Fall möchte ich, dass der danach folgende Textblock erst nach dem Bild beginnt, sich also nicht neben das Bild schiebt.
Den Fall 1) habe ich momentan so gelöst, dass das Text-DIV ein margin-left: Bildbreite + Abstand hat. Den Fall 2) habe ich so gelöst, dass in den Fällen wo der Text kürzer ist das Text-DIV eine height: Bildhöhe + Abstand hat. Beides wird über PHP gehandhabt.
Die Lösung für 1) funktioniert gut, auch wenn sie mir nicht besonders gut gefällt. Die Lösung für 2) funktioniert bei Desktop-Browsern gut, aber nicht bei Mobilbrowsern. Das liegt daran, dass ich beim Erstellen wissen muss ob der Text kürzer ist und dann die height einfüge. Bei der Darstellung in Mobilbrowsern ändert sich aber das Größenverhältnis von Bild und Text. Dadurch wird die Höhe die am Desktop-Browser eine Ausdehnung des DIV war im Mobilbrowser zu einer Einschränken und Formatierungsfehler des darüber hinaus hängenden Texts sind die Folge.
Deswegen würde ich mich über Tipps freuen wie das mit reinem HTML/CSS lösbar wäre. Javascript wäre wahrscheinlich auch eine Möglichkeit, weil sich damit die wirkliche Höhe des Bildes im Browser abfragen lassen würde, aber mir wäre reines HTML/CSS lieber.
Vielen Dank und schöne Grüße, Robert