992 Stimmen

Wie bringe ich Text in einem Pre-Tag unter?

pre Tags sind sehr nützlich für Codeblöcke in HTML und zum Debuggen von Ausgaben beim Schreiben von Skripten, aber wie bringe ich den Text dazu, umzubrechen, anstatt eine lange Zeile auszudrucken?

2voto

rob_st Punkte 294

El <pre> -Element steht für "pre-formatted-text" und soll die Formatierung des Textes (oder was auch immer) zwischen seinen Tags beibehalten. Daher ist es eigentlich nicht vorgesehen, einen automatischen Wortumbruch oder Zeilenumbrüche innerhalb des <pre> -Tag

Text in einem Element wird in einer Schriftart mit fester Breite (in der Regel Courier) angezeigt, und er bewahrt beide Räume und Zeilenumbrüche .

Quelle: w3schools.com , betont von mir selbst gemacht.

0 Stimmen

Es wird lediglich darauf hingewiesen, dass es möglich ist, Text innerhalb eines Vorspanns automatisch umzubrechen, obwohl dies nicht die Absicht des Vorspanns ist.

1 Stimmen

Dies ist die einzig richtige Antwort auf die Frage des Autors. Jede andere Antwort oder mögliche "Lösung" fördert den Mißbrauch des <pre>-Elements. Wenn Sie Schrift in ein <pre>-Element einfügen und es umbrechen wollen, verwenden Sie stattdessen ein <p>-Tag und gestalten Sie es nach Belieben mit einer CSS-Klasse.

0 Stimmen

Ich weiß nicht, warum die Leute es für hilfreich halten, diese Art von "Ich bin schlauer als du"-Ratschlägen zu geben. Nein, ein <p>-Tag ist kein geeigneter Ersatz: Es bewahrt weder Leerraum noch Zeilenumbrüche. Ein <pre>-Tag ist nützlich, um Zeilenumbrüche zu erhalten, aber manchmal ist es notwendig, einen zusätzlichen Umbruch hinzuzufügen, so wie jeder Code-Editor sowohl Zeilenumbrüche erhalten als auch lange Zeilen umbrechen kann.

1voto

Das Folgende hat mir geholfen:

pre {
    white-space: normal;
    word-wrap: break-word;
}

Gracias

6 Stimmen

Ich denke, es ist besser, die white-space: pre-wrap; weil sie die Leerzeichen respektiert

1voto

feacco Punkte 509

The Best Cross Browser Way hat bei mir funktioniert, um Zeilenumbrüche zu erhalten und exakten Code oder Text anzuzeigen: (Chrome, Internetexplorer, Firefox)

CSS:

xmp{ white-space:pre-wrap; word-wrap:break-word; }

HTML:

<xmp> your text or code </xmp>

0 Stimmen

Hat bei mir super funktioniert :-)

13 Stimmen

Xmp ist seit HTML 3.2 veraltet, wurde vollständig aus HTML5 entfernt und hat von Anfang an nicht richtig funktioniert. Es wurde in den verschiedenen Browsern nicht einheitlich implementiert.

0 Stimmen

Die Verwendung von white-space: pre-wrap; und word-wrap: break-word; in meinem css, behält die Einrückung von (json) Snippets, pre line entfernt dies. (Chrome)

1voto

Saleh Abdulaziz Punkte 1079

Falls Sie Prism oder eine andere Code-Formatierungsbibliothek verwenden, müssen Sie die booth pre- und code-Tags wie folgt ändern:

pre {
    overflow-x: auto !important;
    white-space: pre-wrap !important;       /* Since CSS 2.1 */
    white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
    white-space: -pre-wrap !important;      /* Opera 4-6 */
    white-space: -o-pre-wrap !important;    /* Opera 7 */
    word-wrap: break-word !important;       /* Internet Explorer 5.5+ */
}

code{
    white-space: normal !important;
}

1voto

pbies Punkte 582

<pre> tut seine Arbeit, aber für Code gibt es <code> Tag.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X