Die Trennung von Daten und Layout ist ja sinnvoll. Dennoch brauchst Du irgendeine Stelle, die alles miteinander abgleicht.
Das Problem ist, dass Du einige Vorgaben von außen treffen kannst (z.B. 3 Spalten, 2 mit 33,3 % Breite und die dritte nutzt den Rest)
ABER Du willst ja auch auf die Inhalt reagieren und das ist z.B. Text- und Textformatabhängig. Also beeinflussen sich äußere und innere Kriterien.
Da wir Deine genauen Schnittstellen und Möglichkeiten nicht kennen und diese sicher auch einige Einarbeitung erfordern würden, bleibe ich dabei, dass Hilfestellung schwierig sein wird.
Ich hatte vorhin mal einen längeren Text geschrieben und dann auf Grund Deines späteren Posts verworfen.
Habe es aber noch in der Zwischenablage (sind ein paar Überlegungen, aber auch keine konkrete Hilfe):
Zitat:
Ich denke nicht, dass Du hier Tipps erhalten kannst, die Dich wirklich weiter bringen.
Dazu ist die Aufgabenstellung zu spezifisch und sicher auch genau im Kontext Deines Projektes zu betrachten.
Grundsätzlich würde ich zunächst einfach von Rechtecken (ohne Inhalt) ausgehen und die auf einer verfügbaren Fläche "virtuell" anordnen.
Dazu kann man jedem Rechteck bestimmte Kriterien mitgeben (feste Breite oder variable Breite in einem bestimmten Bereich und evtl. sogar einem gewissen Widerstand gegen Abweichungen von der Sollbreite oder der aktuellen Breite).
So könnten sich die Rechtecke wie unter einer Physik verhalten und z.B. bei seitlichen Drücken unterschiedlich zusammenpressen lassen.
Wenn sich die Rechtecke nach einer Textbreite richten soll, dann musst Du diese wohl zunächst zeichnen und die Textbreite bestimmen und danach die Breite der Rechtecke vergeben.
Wenn die Gesamtbreite der Rechtecke aber die Seitenbreite übersteigt, musst Du irgendwo weiter nachgeben. Evtl. sind sogar mehrere Iterationen notwendig...
Ist sicherlich kein einfaches Problem.