pre
Tags sind sehr nützlich für Codeblöcke in HTML und zum Debuggen von Ausgaben beim Schreiben von Skripten. Wie kann ich den Text in Zeilenumbrüche umwandeln, anstatt eine lange Zeile auszudrucken?
720
Die Antwort von dieser Seite in CSS:
pre {
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
white-space:pre-line;
(und alle browserkompatiblen Varianten) scheint in einigen Fällen angemessener zu sein (z. B. ohne Tabulatoren), da dadurch der Platz am Zeilenanfang (falls vorhanden)pre-line
alle Leerzeichen (nicht nur am Anfang der Zeile). developer.mozilla.org/en-US/docs/Web/CSS/white-space enthält eine Tabelle, in der das Verhalten vonwhite-space
Werten zusammengefasst ist.word-wrap: break-word
tut nicht das, wonach die Frage verlangt, sondern führt dazu, dass Zeilenumbrüche auch zwischen Wörtern auftreten. Sie können diese Zeile löschen. In modernen Browsern benötigen Sie keine-moz
oder andere Präfixe.Dies funktioniert hervorragend, um Text zu
pre
umbrechen und Leerzeichen innerhalb des -Tags beizubehalten:quelle
Ich habe festgestellt, dass das Überspringen des Pre-Tags und die Verwendung von Leerzeichen: Pre-Wrap auf einem Div eine bessere Lösung ist.
quelle
style="white-space: pre-wrap; font-family:monospace;"
<pre>
für Codeblöcke einen höheren semantischen Wert haben .Kurz gesagt, dies zwingt den Inhalt dazu, sich in ein "Pre" -Tag einzuschließen, ohne Wörter zu brechen. Prost!
Siehe Live - Beispiel hier .
quelle
Das brauchte ich. Es verhinderte das Brechen von Wörtern, ermöglichte jedoch eine dynamische Breite im Vorbereich.
quelle
Ich schlage vor, das Pre zu vergessen und es einfach in einen Textbereich zu legen.
Ihr Einzug bleibt bestehen und Ihr Code wird nicht mitten auf einem Pfad oder so in Worte gefasst.
Die Auswahl des Textbereichs in einem Textbereich ist einfacher, wenn Sie in die Zwischenablage kopieren möchten.
Das Folgende ist ein PHP-Auszug. Wenn Sie also nicht in PHP sind, variiert die Art und Weise, wie Sie die HTML-Sonderzeichen verpacken.
Informationen zum Kopieren von Text in die Zwischenablage in js finden Sie unter: Wie kopiere ich in JavaScript in die Zwischenablage? .
Jedoch...
Ich habe gerade die Stackoverflow-Codeblöcke überprüft und sie werden in ein <code> -Tag eingeschlossen, das in ein <pre> -Tag mit CSS eingeschlossen ist ...
Auch der Inhalt der Stackoverflow-Codeblöcke wird mithilfe der Syntax (glaube ich) http://code.google.com/p/google-code-prettify/ hervorgehoben .
Es ist ein schönes Setup, aber ich gehe jetzt nur mit Textbereichen.
quelle
<pre>
hat keine semantische Bedeutung (im Gegensatz zu<code>
), es bedeutet einfach, dass Zeilenumbrüche und mehrere Leerzeichen erhalten bleiben sollten.Ich habe @richelectron- und @ user1433454-Antworten kombiniert.
Es funktioniert sehr gut und behält die Textformatierung bei.
quelle
Du kannst entweder:
um die Monospace-Schriftart beizubehalten, aber Zeilenumbruch hinzuzufügen, oder:
Dies ermöglicht eine feste Größe mit horizontalem Bildlauf für lange Zeilen.
quelle
Versuchen Sie es mit
Oder besser CSS werfen.
quelle
Verwenden Sie
white-space: pre-wrap
und einige Präfixe für den automatischen Zeilenumbruch inpre
s.Nicht verwenden,
word-wrap: break-word
da dies natürlich nur ein Wort in zwei Hälften bricht, was Sie wahrscheinlich nicht wollen.quelle
Der beste Cross-Browser-Weg hat für mich funktioniert, um Zeilenumbrüche zu erhalten und genauen Code oder Text anzuzeigen : (Chrome, Internet Explorer, Firefox)
CSS:
HTML:
quelle
Folgendes hat mir geholfen:
Vielen Dank
quelle
white-space: pre-wrap;
weil es Leerzeichen respektiertDas
<pre>
-Element steht für "vorformatierter Text" und soll die Formatierung des Textes (oder was auch immer) zwischen seinen Tags beibehalten. Daher ist es eigentlich nicht beabsichtigt, automatische Zeilenumbrüche oder Zeilenumbrüche innerhalb des<pre>
-Tags zu habenQuelle: w3schools.com , betont von mir gemacht.
quelle