Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

<pre>: Das vorformatierte Textelement

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Das <pre>-Element in HTML repräsentiert vorformatierten Text, der genau so angezeigt werden soll, wie er in der HTML-Datei geschrieben ist. Der Text wird typischerweise mit einer nicht-proportionalen oder monospaced Schriftart gerendert.

Leerzeichen innerhalb dieses Elements werden wie geschrieben angezeigt, mit einer Ausnahme. Wenn ein oder mehrere führende Zeilenumbrüche direkt nach dem öffnenden <pre>-Tag enthalten sind, wird der erste Zeilenumbruch entfernt. Diese Transformation erfolgt durch den HTML-Parser und gilt nicht bei Verwendung von XHTML.

Der Textinhalt von <pre>-Elementen wird als HTML interpretiert, sodass Sie Syntaxzeichen wie < möglicherweise mit ihren entsprechenden Zeichenreferenzen escapen müssen, um sicherzustellen, dass Ihr Textinhalt als reiner Text erhalten bleibt. Weitere Informationen finden Sie unter Escaping von mehrdeutigen Zeichen.

<pre>-Elemente enthalten häufig <code>, <samp> und <kbd>, um Computercode, Computerausgaben und Benutzereingaben darzustellen.

Standardmäßig ist <pre> ein Block-Level Element, das heißt, der Standardwert von display ist block.

Probieren Sie es aus

<pre>
             S
             A
            LUT
             M
            O N
            D  E
            DONT
          JE SUIS
          LA  LAN
          G U E  É
         L O Q U E N
        TE      QUESA
       B  O  U  C  H  E
      O        P A R I S
     T I R E   ET   TIRERA
    T O U             JOURS
   AUX                  A  L
 LEM                      ANDS   - Apollinaire
</pre>
pre {
  font-size: 0.7rem;
  margin: 0;
}

Attribute

Dieses Element enthält nur die globalen Attribute.

width Veraltet Nicht standardisiert

Enthält die bevorzugte Anzahl von Zeichen, die eine Zeile haben sollte. Obwohl technisch immer noch implementiert, hat dieses Attribut keine visuelle Wirkung; um solch einen Effekt zu erzielen, verwenden Sie stattdessen CSS width.

wrap Nicht standardisiert Veraltet

Ist ein Hinweis, der angibt, wie der Überlauf erfolgen muss. In modernen Browsern wird dieser Hinweis ignoriert und es resultiert keine visuelle Wirkung; um solch einen Effekt zu erzielen, verwenden Sie stattdessen CSS white-space.

Barrierefreiheit

Es ist wichtig, eine alternative Beschreibung für Bilder oder Diagramme bereitzustellen, die mit vorformatiertem Text erstellt wurden. Die alternative Beschreibung sollte den Inhalt des Bildes oder Diagramms klar und prägnant beschreiben.

Menschen mit Sehbehinderungen, die mit Hilfe von unterstützender Technologie wie einem Screenreader browsen, können möglicherweise nicht verstehen, was die vorformatierten Textzeichen darstellen, wenn sie in Reihenfolge vorgelesen werden.

Eine Kombination der <figure>- und <figcaption>-Elemente, ergänzt durch das ARIA role und aria-label Attribute am pre-Element, erlauben es, das vorformatierte ASCII-Kunstwerk als Bild mit alternativem Text anzukündigen, wobei das figcaption als Bildunterschrift dient.

Beispiel

html
<figure>
  <pre role="img" aria-label="ASCII COW">
      ___________________________
  &lt; I'm an expert in my field. &gt;
      ---------------------------
          \   ^__^
           \  (oo)\_______
              (__)\       )\/\
                  ||----w |
                  ||     ||
  </pre>
  <figcaption id="cow-caption">
    A cow saying, "I'm an expert in my field." The cow is illustrated using
    preformatted text characters.
  </figcaption>
</figure>

Beispiele

Einfaches Beispiel

HTML

html
<p>Using CSS to change the font color is easy.</p>
<pre><code>
body {
  color: red;
}
</code></pre>

Ergebnis

Escaping von mehrdeutigen Zeichen

Angenommen, Sie möchten HTML-Code in einem <pre>-Element demonstrieren. Die Zeichenfolgen, die gültige HTML-Tags definieren (beginnend mit < und endend mit >), werden nicht angezeigt. Um die Tag-Zeichen als Text anzuzeigen, müssen Sie zumindest das <-Zeichen mit seiner Zeichenreferenz escapen, sodass die Sequenzen keine gültigen Tags mehr definieren.

In Wirklichkeit behandelt der HTML-Parser die meisten Zeichen als normalen Text, es sei denn, sie stehen in bestimmten Kontexten. Zum Beispiel ist < code in Ordnung, aber <code würde falsch interpretiert; &am; ist in Ordnung, aber &amp; ist es nicht. Es ist jedoch eine gute Praxis, alle mehrdeutigen Zeichen zu escapen, um Verwirrung zu vermeiden, insbesondere wenn Sie programmgesteuert HTML generieren und den <pre>-Inhalt injizieren. In diesem Fall hier eine gute Faustregel, wie man Zeichen escapen sollte:

  1. Schreiben Sie zuerst den Inhalt so auf, wie Sie ihn im HTML-Dokument erscheinen lassen möchten.
  2. Ersetzen Sie alle Et-Zeichen (&) durch &amp;. Machen Sie diesen Schritt zuerst, damit neue &-Zeichen, die im nächsten Schritt generiert wurden, nicht erneut escapet werden.
  3. Ersetzen Sie alle <-Zeichen durch &lt;.

Dies sollte dazu führen, dass der Inhalt wie beabsichtigt angezeigt wird. Das Ersetzen anderer HTML-Syntaxzeichen ist optional (wie > zu &gt;, " zu &quot; und ' zu &apos;), schadet jedoch nicht.

HTML

html
<pre><code>
let i = 5;

if (i &lt; 10 &amp;&amp; i &gt; 0)
  return &quot;Single Digit Number&quot;
</code></pre>

Ergebnis

Technische Zusammenfassung

Inhaltskategorien Flussinhalt, fühlbarer Inhalt.
Erlaubter Inhalt Satzinhalt.
Tag-Auslassung Keine, sowohl das öffnende als auch das schließende Tag sind obligatorisch.
Erlaubte Eltern Jedes Element, das Flussinhalt akzeptiert.
Implizite ARIA-Rolle generisch
Erlaubte ARIA-Rollen Beliebig
DOM-Schnittstelle [`HTMLPreElement`](/de/docs/Web/API/HTMLPreElement)

Spezifikationen

Specification
HTML
# the-pre-element

Browser-Kompatibilität

Siehe auch