<pre>: Das Preformatierte Text-Element
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 stellt vorformatierten Text dar, der genau so präsentiert wird, wie er in der HTML-Datei geschrieben ist. Der Text wird typischerweise mit einer nicht-proportionalen oder monotypischen 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 das erste Zeilenumbruch-Zeichen entfernt.
Der Textinhalt von <pre>
-Elementen wird als HTML geparst. Wenn Sie sicherstellen möchten, dass Ihr Textinhalt als Klartext erhalten bleibt, müssen einige Syntaxzeichen wie <
möglicherweise unter Verwendung ihrer entsprechenden Zeichenreferenzen escaped werden. Siehe ambigue Zeichen escapen für weitere Informationen.
<pre>
-Elemente enthalten häufig die <code>
, <samp>
und <kbd>
-Elemente, um Computer-Code, 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
<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 enthält 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 keinen visuellen Effekt; um einen solchen Effekt zu erzielen, verwenden Sie stattdessen CSS
width
. wrap
Nicht standardisiert Veraltet-
Ist ein Hinweis darauf, wie der Überlauf geschehen muss. In modernen Browsern wird dieser Hinweis ignoriert und es ergibt sich kein visueller Effekt; um einen solchen 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ützenden Technologien wie einem Screenreader surfen, können möglicherweise nicht verstehen, was die vorformatierten Textzeichen darstellen, wenn sie nacheinander vorgelesen werden.
Eine Kombination der <figure>
- und <figcaption>
-Elemente, ergänzt durch die ARIA role
- und aria-label
-Attribute am pre
-Element, ermöglicht es, dass die vorformatierte ASCII-Kunst als Bild mit alternativem Text angekündigt wird, wobei 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
Ambigue 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 Klartext, es sei denn, sie befinden sich in bestimmten Kontexten. Zum Beispiel ist < code
in Ordnung, aber <code
würde falsch geparst werden; &am;
ist in Ordnung, aber &
nicht. Es ist jedoch eine gute Praxis, alle ambigen 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 escapen sollte:
- Schreiben Sie zunächst den Inhalt so, wie er im HTML-Dokument erscheinen soll.
- Ersetzen Sie alle kaufmännischen Und-Zeichen (
&
) durch&
. Führen Sie diesen Schritt zuerst aus, damit neue&
-Zeichen, die im nächsten Schritt generiert werden, nicht escaped werden. - Ersetzen Sie alle
<
-Zeichen durch<
.
Dies sollte dazu führen, dass der Inhalt wie beabsichtigt angezeigt wird. Das Ersetzen anderer HTML-Syntaxzeichen ist optional (wie >
zu >
, "
zu "
und '
zu '
), wird aber keinen Schaden anrichten.
HTML
<pre><code>
let i = 5;
if (i < 10 && i > 0)
return "Single Digit Number"
</code></pre>
Ergebnis
Technische Zusammenfassung
Inhaltskategorien | flussfähiger Inhalt, greifbarer Inhalt. |
---|---|
Erlaubter Inhalt | Phraseninhalt. |
Tag-Auslassung | Keine, sowohl das Start- als auch das Endtag sind obligatorisch. |
Erlaubte Eltern | Jedes Element, das flussfähigen Inhalt 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
- CSS:
white-space
,word-break
- Zeichenreferenz
- Verwandte Elemente:
<code>
,<samp>
,<kbd>