2015-08-12 1 views
9

Ich baue eine einfache Webseite mit einigen Marketing-Inhalten. Eine Sache, die ich nicht mag, ist, dass, wenn eine Textzeile zu lang ist, sie in die nächste Zeile, fein, wickelt, aber es oft so umschließt, dass es nur ein Wort auf der neuen Zeile gibt , was vom Design her nur eine schlechte Nachricht ist.Wie kann ich verhindern, dass nur ein Wort in einer neuen Zeile in einem HTML-Element hängen bleibt?

Solche und solche müssen nicht schwierig sein. Solch ein Produkt macht es
einfach

Was kann ich tun, um dynamisch mindestens zwei Wörter auf jeder hängenden Linie zu gewährleisten?

Solche und solche müssen nicht schwierig sein. Solche und solches Produkt macht
es leicht

+0

* * ... ich Ihre Behauptung bestreiten "die von einem Design-Standpunkt nur schlechte Nachricht ist.". Wenn eine Zeile zu einem einzigen Wort umgebrochen wird, dann ist es zumindest natürlich, anstatt eine unnatürliche Pause zu erzwingen. –

+3

@Paulie_D - fwiw, es ist im Bereich der Printmedien üblich, sich auf dieses Zeug zu besinnen. Seitenlayout-Anwendungen (gut, wenn ich sie benutzt habe, war Quark XPress und Aldus/Adobe PageMaker) wie InDesign haben eingebaute Funktionen zur Unterstützung in der Prävention von "Witwen"/"Waisen" .. – bkwdesign

+0

Ja ... aber das ist nicht Print ... es ist das Web. https://developer.mozilla.org/en-US/docs/Web/CSS/widows –

Antwort

10

Die einfache Lösung ist am Ende eines Absatzes einen non-breaking Raum zwischen den beiden letzten Worte zu benutzen.

  

<p>Such and such doesn't have to be difficult. Such and such product makes it&nbsp;easy</p> 

Diese mühsame bekommen könnte, wenn Sie eine Menge Inhalt haben und vor allem, wenn es Unternehmen gesteuert. In diesem Fall können Sie möglicherweise eine Bibliothek finden oder eine Lösung schreiben, die automatisch den geschützten Bereich zwischen den letzten beiden Wörtern jedes Absatzes für Sie einfügt.

Versuchen Sie folgendes: http://matthewlein.com/widowfix/

+0

ähnlich könnten Sie die letzten zwei Wörter in ein "" -Tag, z.B. –

6

EDIT: Die best answer ist viel sauberer - Sie wahrscheinlich, dass stattdessen verwenden sollten. Ich lasse meine Antwort, weil es funktioniert und es hat einen Wert für seltsame Fälle (z. B. wenn Sie einen Bindestrich anstelle eines Leerzeichens verwenden, wenn Sie nicht &nbsp; usw. verwenden möchten).


Hier ist eine nette kleine Lösung. Erstellen Sie eine CSS-Klasse wie folgt aus:

.nobr { white-space:nowrap; } 

Jedes Element mit der Klasse „nobr“ nicht zu wickeln weiß-Raum zugelassen werden (Leerzeichen, Tabulatoren, etc.) auf neuen Linien. Umranden Sie einfach die letzten beiden Wörter Ihres Textes mit einer span.nobr.

<p>Such and such doesn't have to be difficult. Such and such product makes <span class="nobr">it easy</span></p> 
+0

oder er könnte einfach in eine
Tag einfügen –

+5

Ein '
' -Tag würde _force_ der Absatz vor den letzten zwei Worten brechen, was ist nicht was er will. Wenn du das tust, könntest du eine Zeile mit einem Wort über der Zeile mit den letzten zwei Wörtern haben, und das wäre schlimmer. –

Verwandte Themen