<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 repräsentiert vorformatierten Text, der genau so dargestellt werden soll, wie er in der HTML-Datei geschrieben wurde. Der Text wird typischerweise in einer nicht-proportionalen oder monospaced-Schriftart gerendert.
Leerzeichen innerhalb dieses Elements werden wie geschrieben angezeigt, mit einer Ausnahme: Wenn unmittelbar nach dem öffnenden <pre>
-Tag ein oder mehrere führende Zeilenumbrüche enthalten sind, wird der erste Zeilenumbruch entfernt.
Der Textinhalt von <pre>
-Elementen wird als HTML geparst. Um sicherzustellen, dass Ihr Textinhalt als reiner Text erhalten bleibt, müssen einige Syntaxzeichen wie <
möglicherweise mithilfe ihrer entsprechenden Zeichenreferenzen maskiert werden. Weitere Informationen finden Sie unter maskieren mehrdeutiger Zeichen.
<pre>
-Elemente enthalten häufig <code>
, <samp>
und <kbd>
-Elemente, um Computercode, Computerausgaben und Benutzereingaben darzustellen.
Standardmäßig ist <pre>
ein Block-Level-Element; d. h., sein Standardwert für display
ist block
.
Probieren Sie es aus
Attribute
Dieses Element enthält nur die globalen Attribute.
width
Veraltet Nicht standardisiert-
Enthält die bevorzugte Anzahl von Zeichen, die eine Zeile haben soll. 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-
Gibt einen Hinweis, wie der Überlauf gehandhabt werden soll. In modernen Browsern wird dieser Hinweis ignoriert und hat keine visuelle Wirkung. 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 Diagramms klar und prägnant beschreiben.
Menschen mit Sehbehinderungen, die unterstützende Technologien wie einen Screenreader verwenden, können möglicherweise nicht verstehen, was die Zeichen im vorformatierten Text darstellen, wenn diese nacheinander vorgelesen werden.
Eine Kombination aus den <figure>
- und <figcaption>
-Elementen, ergänzt durch die ARIA-role
und aria-label
-Attribute am pre
-Element, ermöglicht es, dass die vorformatierte ASCII-Grafik als Bild mit Alternativtext angekündigt wird, wobei das figcaption
als Bildunterschrift dient.
Beispiel
<figure>
<pre role="img" aria-label="ASCII COW">
___________________________
< I'm an expert in my field. >
---------------------------
\ ^__^
\ (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
<p>Using CSS to change the font color is easy.</p>
<pre><code>
body {
color: red;
}
</code></pre>
Ergebnis
Maskieren mehrdeutiger Zeichen
Angenommen, Sie möchten HTML-Code in einem <pre>
-Element darstellen. Die Zeichenfolgen, die gültige HTML-Tags definieren (beginnend mit <
und endend mit >
), werden nicht angezeigt. Um die Tag-Zeichen als Text darzustellen, müssen Sie das <
-Zeichen (zumindest) mithilfe seiner Zeichenreferenz maskieren, sodass die Zeichenfolgen keine gültigen Tags mehr definieren.
In Wirklichkeit behandelt der HTML-Parser die meisten Zeichen als Klartext, es sei denn, sie befinden sich in spezifischen Kontexten. Zum Beispiel ist < code
in Ordnung, aber <code
würde falsch geparst; &am;
ist in Ordnung, aber &
nicht. Dennoch ist es eine gute Praxis, alle mehrdeutigen Zeichen zu maskieren, um jegliche Verwirrung zu vermeiden, insbesondere wenn Sie HTML programmgesteuert generieren und den Inhalt des <pre>
-Elements einfügen. In diesem Fall ist hier eine Faustregel, wie Zeichen maskiert werden sollen:
- Schreiben Sie zunächst den Inhalt so, wie er im HTML-Dokument erscheinen soll.
- Ersetzen Sie alle Kaufmännischen Und-Zeichen (
&
) durch&
. Machen Sie diesen Schritt zuerst, damit neue&
-Zeichen, die im nächsten Schritt generiert werden, nicht maskiert werden. - Ersetzen Sie alle
<
-Zeichen durch<
.
Dies sollte dazu führen, dass der Inhalt wie beabsichtigt dargestellt wird. Das Ersetzen anderer HTML-Syntaxzeichen ist optional (wie >
durch >
, "
durch "
und '
durch '
), wird jedoch keinen Schaden anrichten.
HTML
<pre><code>
let i = 5;
if (i < 10 && i > 0)
return "Single Digit Number"
</code></pre>
Ergebnis
Technische Zusammenfassung
Inhaltskategorien | Flussinhalt, fühlbarer Inhalt. |
---|---|
Zulässiger Inhalt | Phraseninhalt. |
Tag-Auslassung | Keine, sowohl das Start- als auch das End-Tag sind obligatorisch. |
Zulässige Eltern | Jedes Element, das Flussinhalt akzeptiert. |
Implizierte ARIA-Rolle |
generic
|
Zulässige ARIA-Rollen | Beliebig |
DOM-Schnittstelle | [`HTMLPreElement`](/de/docs/Web/API/HTMLPreElement) |
Spezifikationen
Specification |
---|
HTML # the-pre-element |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- CSS:
white-space
,word-break
- Zeichenreferenz
- Verwandtes Element:
<code>
,<samp>
,<kbd>