$("h2").each(function() {
var wordArray = $(this).text().split(" ");
var finalTitle = "";
for (i=0;i<=wordArray.length-1;i++) {
finalTitle += wordArray[i];
if (i == (wordArray.length-2)) {
finalTitle += " ";
} else {
finalTitle += " ";
}
}
$(this).html(finalTitle);
});
Verwandelt dies
Neues Screencast: Erste zehn Minuten mit TypeKit
In dies
Neues Screencast: Erste zehn Minuten mit TypeKit
Das kann man auch ohne die innere Schleife machen, so:
$("*").each(function(){
var content,widow;
content = $(this).text().split(" ");
widow = " "+content.pop();
$(this).html(content.join(" ")+widow);
});
was ist der Sinn??
James, in der Printtypografie (Zeitschriften, Bücher usw.) gilt es als schlechter Stil, ein einzelnes Wort allein auf der letzten Zeile eines Absatzes zu haben, insbesondere über Spalten hinweg und einzelne Zeilen über Seiten hinweg. Im Web wird dies mit CSS erst seit kurzem angegangen.
http://reference.sitepoint.com/css/orphans
Wenn Sie ein <a> in einem <h2> haben, sollten Sie die .text()-Funktion durch die .html()-Funktion ersetzen, um das richtige Wortarray zu erhalten.
var wordArray = $(this).html().split(” “);
Es ist nicht wirklich stabil, aber es funktioniert!
white-space:nowrap
Dieses Thema ist sehr interessant, besonders wenn es auf den neuen Trend des fließenden Layouts angewendet wird
Ich habe ein jQuery-Plugin entwickelt, um dies zu vereinfachen. Außerdem haben Sie die Möglichkeit, nur Wörter einer bestimmten Anzahl von Buchstaben zu korrigieren (d. h. keine langen Wörter zu korrigieren, die allein gut aussehen) und ein paar andere Optionen.
http://matthewlein.com/widowfix/
Ich stimme Milovan zu, die {white-space:nowrap} erledigt diese Aufgabe
Das bewirkt aber, dass der Titel gar nicht umbrochen wird. Es ist nicht so, dass der Titel nicht umbrechen soll, aber wir wollen sicherstellen, dass der Umbruch nicht zwischen den letzten beiden Wörtern erfolgt.
Ich verwende einfach ein (nicht teilbares Leerzeichen) in Titeln. So kann ich steuern, wo der Umbruch stattfindet.
Nein, {white-space:nowrap} erledigt diese Aufgabe nicht.
Wenn Sie 3 volle Textzeilen plus ein einzelnes Wort haben, verschiebt die nowrap-Eigenschaft den gesamten Text in eine sehr lange Zeile.
Ein anderer Ansatz
Nein, {white-space:nowrap} erledigt diese Aufgabe nicht.
Wenn Sie 3 volle Textzeilen plus ein einzelnes Wort haben, verschiebt die nowrap-Eigenschaft den gesamten Text in eine sehr lange Zeile.
Um das richtig zu verstehen… der Grund für die Hinzufügung des nicht teilbaren Leerzeichens ist die Verhinderung des Umbruchs bei den letzten ein oder zwei Wörtern?
Das nicht teilbare Leerzeichen füllt den leeren Raum auf, sodass der Zeilenumbruch es als einzelnes Wort betrachtet?