HTML <xmp> Tag
Das <xmp>-Tag gibt Text zwischen Start- und End-Tag ohne HTML-Interpretation in einer nichtproportionalen Schrift aus.
Das HTML-Tag <xmp> ist veraltet und wurde entfernt. Es wurde aus dem HTML-Standard gestrichen und darf auf neuen Seiten nicht mehr verwendet werden. Diese Seite erklärt, was es früher leistete, warum es entfernt wurde und wie man heute korrekt wörtlichen HTML-Code oder vorformatierten Text anzeigt.
Früher renderte <xmp> („example") den Text zwischen seinem Start- und End-Tag genau so, wie er geschrieben wurde — in einer nichtproportionalen Schrift, mit erhaltenen Leerzeichen und Zeilenumbrüchen — und ohne dabei enthaltenes HTML zu interpretieren. Das bedeutete, man konnte reinen Markup-Code wie <b>bold</b> einfügen, und der Browser zeigte die spitzen Klammern an, anstatt fetten Text zu rendern.
Verwenden Sie <xmp> nicht. Es entspricht nicht dem HTML5-Standard, und sein Verhalten ist browserübergreifend unzuverlässig. Verwenden Sie stattdessen <pre> (optional mit <code>) und ersetzen Sie die Zeichen <, > und & durch HTML-Entities. Siehe den modernen Ersatz unten.
Warum <xmp> entfernt wurde
Das <xmp>-Element wurde als veraltet eingestuft, weil sein Verhalten „rohen HTML ohne Escaping anzeigen" grundlegend mit der Art kollidiert, wie Browser Dokumente parsen:
- Das Parsen war inkonsistent. Da der Parser in einen speziellen „Rohtextmodus" wechseln musste, um das schließende
</xmp>zu finden, waren sich Browser bei Grenzfällen uneinig — verschachtelte Tags, Kommentare und insbesondere die Zeichenfolge</xmp>im Inhalt selbst verhielten sich in verschiedenen Engines unterschiedlich. - Es förderte unescapten Inhalt. Autoren verließen sich auf
<xmp>, um HTML direkt in eine Seite einzufügen. Ein einzelnes unbeabsichtigtes</xmp>im Inhalt würde den Block vorzeitig beenden und den restlichen Markup rendern lassen — sowohl ein Darstellungsfehler als auch ein potenzielles Sicherheitsproblem. - Eine standardisierte, vorhersehbare Alternative existierte bereits.
<pre>bewahrt Leerzeichen und verwendet eine nichtproportionale Schrift, und Entity-Escaping zeigt<und>zuverlässig als Text an. Da diese Kombination klar definiert ist und überall gleich funktioniert, war<xmp>nicht länger notwendig.
Das eng verwandte Tag <plaintext> wurde aus denselben Gründen entfernt. Die vollständige Liste finden Sie unter Veraltete HTML-Tags.
Der moderne Ersatz
Um wörtlichen HTML-Code anzuzeigen, verwenden Sie <pre> und ersetzen Sie jedes Sonderzeichen durch seine HTML-Entity: < wird zu <, > wird zu > und & wird zu &. Der Browser dekodiert die Entities zurück in die sichtbaren Zeichen, behandelt sie aber nie als Markup.
<!DOCTYPE html>
<html>
<head>
<title>Showing literal HTML with pre</title>
</head>
<body>
<pre>
This is <b>bold</b> in source.
The <b> tag is shown as text, not rendered.
</pre>
</body>
</html>Auf der gerenderten Seite zeigt der obige <pre>-Block genau Folgendes an:
This is <b>bold</b> in source.
The <b> tag is shown as text, not rendered.Wenn der vorformatierte Text speziell ein Quellcode-Block ist, schließen Sie ihn in <code> ein, um die Semantik zu verdeutlichen:
<pre><code>function greet(name) {
return "Hello, " + name;
}
// Literal HTML still needs escaping here too:
// <div class="box"></div>
</code></pre>Die Escaping-Regel ist der wesentliche Unterschied zu <xmp>. Innerhalb von <pre> (und überall sonst in normalem HTML) würde ein wörtliches <b> als Tag geparst werden, daher müssen Sie <b> schreiben, um es als Text anzuzeigen.
Syntax
Das <xmp>-Tag kam paarweise vor. Der Inhalt wurde zwischen dem öffnenden (<xmp>) und dem schließenden (</xmp>) Tag geschrieben. (Nur zur Referenz gezeigt — verwenden Sie es nicht.)
Veraltetes Beispiel des HTML-Tags <xmp>
Das folgende Beispiel zeigt, wie <xmp> früher verwendet wurde. Es dient als historische Referenz; ersetzen Sie es in modernem HTML durch den oben gezeigten <pre>-Ansatz.
HTML <xmp> Tag
<!DOCTYPE html>
<html>
<head>
<title>The title of the document</title>
</head>
<body>
<xmp> This is a preformatted text.
All characters in this area have the same width,
and the spaces and line breaks within this element are shown as typed.
</xmp>
</body>
</html>Ergebnis

Attribute
Das <xmp>-Tag unterstützt auch die globalen Attribute.
Übung
Verwandte Tags
<pre>— das Standardelement für vorformatierten, nichtproportionalen Text.<code>— kennzeichnet einen Fragment mit Computercode.<plaintext>— ein weiteres entferntes Tag mit ähnlichem Rohtextverhalten.- Veraltete HTML-Tags — die vollständige Liste veralteter Elemente, die vermieden werden sollten.