Antworten auf deine Fragen:
Neues Thema erstellen

Erledigt - Gedicht mit automatischem Zeilenumbruch

draupnir

Moderator

Teammitglied
Hallo zusammen,
ich bin auf der Suche – und habe auch schon fleissig bei Google & Co. geschaut – nach einer reinen CSS-Lösung für Gedichte, bei denen die Gedichtzeilen linksbündig geschrieben werden, doch sollte der Platz nicht reichen, dann sollen die überzähligen Worte automatisch rechtsbündig unter der zugehören Zeile erscheinen.

Beispiel für genug Platz:
und in ebensoviel Sätzen
läßt sich Bandwurmweisheit schwätzen.

Und wenn das Fenster zu klein oder die Schrift zu groß ist, dann so:
und in ebensoviel Sätzen
läßt sich Bandwurmweisheit
...............................schwätzen.


(Die Punkte musste ich hier einfügen, um das Wort ans Zeilenende zubekommen. Natürlich sollen diese nicht benutzt oder angezeigt werden.)

Wie könnte man das lösen und es sollte keine Speziallösung sein, die nur in einem bestimmten Browser funktioniert.

Freue mich auf Lösungsansätze oder die Lösung selbst,
– j.
 

draupnir

Moderator

Teammitglied
Leider nein, denn das bezieht sich nur auf die letzte Zeile eines Textes oder Gedichtes und erzwingt in jedem Fall für diese letzte Zeile eine Ausrichtung z. b. rechtsbündig. Ich brauche es jedoch flexible für jede mögliche, sprich zu lange Gedichtzeile.
 

buerzel

Versuch macht kluch!

Teammitglied
Dann müsste man ans Ende jeder Zeile ein <div> einfügen ... :rolleyes: (bzw. vor den Anfang jeder neuen Zeile)
 
Zuletzt bearbeitet:

draupnir

Moderator

Teammitglied
Das bringt nix. Ich brauche linksbündige Zeile, die wenn der Platz nicht reicht, in der zusätzlichen Zeile rechtsbündig werden. Wo der Umbruch passiert, weiss ich nicht, ich kann also keine div oder span einfügen.
 

draupnir

Moderator

Teammitglied
Einen Text mit DIVs unterbrechen ist nicht gerade im Sinn des Ganzen. :-(
Mit ist heute Nacht etwas eingefallen, aber noch nicht getestet. CSS könnte die Worte in der Zeile mit float:left (nur das erste Wort) bzw. alle anderen Worte float:right setzen. Mal sehen, ob diese Idee was bringt.
 

Myhar

Hat es drauf

Das funktioniert so nicht mit CSS, da wirst du eigene wrapper mit JS für die letzte Zeile erstellen müssen und dann die Zeile rechtsbündig anordnen.
 

draupnir

Moderator

Teammitglied
So, ich habe eine sehr einfache, schnelle Lösung gefunden. Im Safari läuft es gut.
Falls jemand in einem anderen Browser Probleme hat, lasst es mich bitte wissen.


HTML-Dokument zum Testen:
Datei von filehorst.de laden

Und hier der HTML bzw. CSS-Quellcode:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Test für Gedicht</title> <style> .poem p::first-line { background-color: yellow; text-align: right; } .poem p:nth-of-type(n+1) { text-align: justify; } .poem {width: 50%; margin-left: 5em; } </style> </head> <body> <h1>Eine Gedichtzeile</h1> <p> mit rechtbündigen Zeilenumbruch. Verändere die Breite des Fenster und sieh, wie die Zeilen umbrechen. Die gelbe Hintergrundfarbe dient hier nur um Erkennen, welches die erste Zeile ist.</p> <div class="poem"> <p> 1aaaaaaa 2bbbbbbbb 3cccccccccc 4dddddddd 5eeeeeeee 6 fffff 7gggggggggggg 8 hhhhhhh. </p> </div> </body> </html>
 

Dudlhofer

Aktives Mitglied

Getestet unter Windows 10 mit Firefox, Chrome und Edge, jeweils aktuelle Version: funktioniert nicht - die letzte Zeile bleibt immer linksbündig.

zwischenablage01tmc45.jpg
 

draupnir

Moderator

Teammitglied
Das lange testen und suchen ist beendet. So wie es aussieht, benutzen FireFox und Edge intern den Befehl »display: flex« und werten daher nicht alle Befehle korrekt aus. Jedenfalls wird das Verhalten von Apple Safari durch »display: flex« gleich dem Verhalten der anderen Webbrowser.

Ich habe jetzt noch automatische Zeilennummern hinzugefügt, dazu brauche ich in jedem Fall »display: flex«. Um mit den linken Zeilenumbrüchen zu leben, habe ich den Abstand zwischen echten Zeilen größer gemacht, so erkannt man gut, dass die Umbrüche zur Zeile darüber gehören. Hier mein Ergebnis in drei Browsern:
 

greatblock

Noch nicht viel geschrieben

Edit: Oh, ich sehe gerade, es hat sich erledigt.



Hm, also bei mir funktioniert's.



<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Test für Gedicht</title> <style> .poem p::first-line { background-color: yellow; text-align: right; } .poem p:nth-of-type(n+1) { text-align: justify; } .poem {width: 50%; margin-left: 5em; } @media screen and (max-width: 1195px) { .p1 {text-align: right!important;} } </style> </head> <body> <h1>Eine Gedichtzeile</h1> <p> mit rechtbündigen Zeilenumbruch. Verändere die Breite des Fenster und sieh, wie die Zeilen umbrechen. Die gelbe Hintergrundfarbe dient hier nur um Erkennen, welches die erste Zeile ist.</p> <div class="poem"> <p class="p1"> 1aaaaaaa 2bbbbbbbb 3cccccccccc 4dddddddd 5eeeeeeee 6 fffff 7gggggggggggg 8 hhhhhhh. </p> </div> </body> </html>


Du kannst auch deine CSS Datei mit:

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; }


resetten.
 

greatblock

Noch nicht viel geschrieben

FireFox, Microsoft Edge, Chrome.
Funktioniert.

Ab der festen Größe entsteht automatisch ein Zeilenumbruch und dann vergebe ich der Class ein
Text-align: right!important
Ich kann unendlich mal minimieren und maximieren. Es wird beim auf und ab linksbündig und dann wieder rechtsbündig. So wie du es haben wolltest.

Ich weiß allerdings nicht wie es bei deinem Endprodukt ausschaut. Ich müsste mir dein Code anschauen.

Edit: Ich sehe du hast für jede Zeile ein <p> eingepflegt. Ist das gewollt?
 
Zuletzt bearbeitet:

greatblock

Noch nicht viel geschrieben

Schau, ich habe Etwas gefunden::tongueclosed:

Mit Zeilen Umbruch

text-align-last: right; -moz-text-align-last: right;

Das ist es:

 
Zuletzt bearbeitet:

draupnir

Moderator

Teammitglied
prima, jetzt klappt es in Safari, Edge und Firefox auch mit dem Umbruch rechts unter den Zeilen. Noch mal dank an greatblock.
Hier das Ergebnis in Firefox und der Quellcode:


P. S. Jetzt stellt sich nur die Frage, welche Version ist besser zu lesen? Umbruch der Gedichtzeilen links oder rechts unter der Hauptzeile?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.478
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben