<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 July 2015.

Das <pre> HTML-Element steht für vorformatierten Text, der genau so angezeigt wird, wie er in der HTML-Datei geschrieben ist. Der Text wird typischerweise in einer nicht-proportionalen oder monospaced Schriftart dargestellt.

Leerzeichen innerhalb dieses Elements werden so dargestellt, wie sie geschrieben wurden, mit einer Ausnahme. Wenn ein oder mehrere führende Zeilenumbruchzeichen unmittelbar nach dem öffnenden <pre>-Tag enthalten sind, wird das erste Zeilenumbruchzeichen entfernt.

Der Textinhalt von <pre>-Elementen wird als HTML geparst. Wenn Sie sicherstellen möchten, dass Ihr Textinhalt als reiner Text bleibt, müssen einige Syntaxzeichen, wie <, mit ihren jeweiligen Zeichenreferenzen eskapiert werden. Siehe Ambige Zeichen escapen für weitere Informationen.

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

Standardmäßig ist <pre> ein Block-Level-Element, d.h., sein Standardwert für display ist block.

Probieren Sie es aus

<pre>
             S
             A
            LUT
             M
            O N
            D  E
            DONT
           E 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 umfasst nur die globalen Attribute.

width Veraltet Nicht standardisiert

Enthält die bevorzugte Anzahl von Zeichen, die eine Zeile haben sollte. Obwohl technisch noch implementiert, hat dieses Attribut keine visuelle Wirkung; um eine solche Wirkung 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 hat keine visuelle Auswirkung; um eine solche Wirkung 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 des Diagramms klar und präzise beschreiben.

Menschen mit Sehbehinderung und solche, die mit Hilfstechnologien wie Bildschirmlesegeräten surfen, könnten nicht verstehen, was die vorformatierten Textzeichen darstellen, wenn sie in der Reihenfolge vorgelesen werden.

Eine Kombination der <figure>- und <figcaption>-Elemente, ergänzt durch das ARIA role und die aria-label Attribute auf dem pre-Element, ermöglicht es, die vorformatierte ASCII-Kunst als Bild mit alternativem Text anzukündigen, wobei die 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

Ambige Zeichen escapen

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 das <-Zeichen mit seiner Zeichenreferenz escapen, sodass die Sequenzen keine gültigen Tags mehr definieren.

Tatsächlich behandelt der HTML-Parser die meisten Zeichen als reinen Text, es sei denn, sie befinden sich in spezifischen Kontexten. Zum Beispiel ist < code in Ordnung, aber <code würde falsch geparst werden; &am; ist in Ordnung, aber &amp; nicht. Es ist jedoch eine gute Praxis, alle missverständlichen Zeichen zu escapen, um Verwirrung zu vermeiden, insbesondere wenn Sie HTML programmatisch generieren und den <pre>-Inhalt einfügen. Hier ist eine gute Faustregel, wie man Zeichen escapet:

  1. Schreiben Sie zunächst den Inhalt so, wie er im HTML-Dokument erscheinen soll.
  2. Ersetzen Sie alle Kaufmannsundzeichen (&) durch &amp;. Machen Sie diesen Schritt zuerst, damit neu generierte &-Zeichen im nächsten Schritt nicht erneut escapt 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;), wird aber keinen Schaden anrichten.

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 Fließinhalte, fühlbarer Inhalt.
Erlaubter Inhalt Phrasinhalte.
Tag-Auslassung Keine, sowohl das Start- als auch das End-Tag sind erforderlich.
Erlaubte Elternteile Jedes Element, das Fließinhalte akzeptiert.
Implizierte ARIA-Rolle generic
Erlaubte ARIA-Rollen Jede
DOM-Schnittstelle [`HTMLPreElement`](/de/docs/Web/API/HTMLPreElement)

Spezifikationen

Specification
HTML
# the-pre-element

Browser-Kompatibilität

Siehe auch