Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Tekst en koppen

Het element <pre>

Het <pre>-element van HTML vertegenwoordigt voorgeformatteerde tekst die exact moet worden weergegeven zoals in het HTML-bestand geschreven. De tekst wordt doorgaans weergegeven met een niet-proportioneel, of monospaced-lettertype.

Code
<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>
Resultaat in de browser

Attributen

Dit element bevat alleen de globale attributen.

width Verouderd Niet-standaardBevat het gewenste aantal tekens dat een regel zou moeten hebben. Hoewel technisch nog geïmplementeerd, heeft dit attribuut geen visueel effect; gebruik in plaats daarvan de CSS-eigenschap width om zo'n effect te bereiken.
wrap Niet-standaard VerouderdIs een hint die aangeeft hoe overflow moet gebeuren. In moderne browsers wordt deze hint genegeerd en resulteert de aanwezigheid ervan niet in een visueel effect; gebruik in plaats daarvan de CSS-eigenschap white-space om zo'n effect te bereiken.

Toegankelijkheid

Het is belangrijk om een alternatieve beschrijving te geven voor afbeeldingen of diagrammen die met voorgeformatteerde tekst zijn gemaakt. De alternatieve beschrijving moet de inhoud van de afbeelding of het diagram duidelijk en beknopt beschrijven.

Mensen met slechtziendheid die surfen met behulp van ondersteunende technologie zoals een schermlezer, begrijpen mogelijk niet wat de voorgeformatteerde-tekstkarakters voorstellen wanneer ze na elkaar worden voorgelezen.

Een combinatie van de <figure>- en <figcaption>-elementen, aangevuld met de ARIA-attributen role en aria-label op het pre-element, maakt het mogelijk om de voorgeformatteerde ASCII-kunst aan te kondigen als een afbeelding met alternatieve tekst, waarbij de figcaption als bijschrift van de afbeelding dient.

Voorbeeld

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>

Voorbeelden

Basisvoorbeeld

HTML

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

Resultaat

Resultaat in de browser

Dubbelzinnige tekens escapen

Stel dat je HTML-code wilt demonstreren in een <pre>-element. De tekenreeksen die geldige HTML-tags definiëren (beginnend met < en eindigend met >) worden niet weergegeven. Om de tag-tekens als tekst weer te geven, moet je (op zijn minst) het <-teken escapen met zijn character reference, zodat de reeksen niet langer geldige tags definiëren.

In werkelijkheid behandelt de HTML-parser de meeste tekens als platte tekst, tenzij in specifieke contexten. < code is bijvoorbeeld prima, maar <code zou verkeerd geparseerd worden; &am; is prima, maar &amp; niet. Het is echter een goede gewoonte om alle dubbelzinnige tekens te escapen om verwarring te voorkomen, vooral als je programmatisch HTML genereert en de inhoud van <pre> injecteert. In dit geval is hier een goede vuistregel voor het escapen van tekens:

  1. Schrijf de inhoud eerst uit zoals je wilt dat deze in het HTML-document verschijnt.
  2. Vervang eventuele ampersands (&) door &amp;. Doe deze stap eerst, zodat nieuwe &-tekens die in de volgende stap worden gegenereerd, niet worden ge-escaped.
  3. Vervang eventuele <-tekens door &lt;.

Dit zou moeten resulteren in het weergeven van de inhoud zoals je het bedoeld had. Het vervangen van andere HTML-syntaxistekens is optioneel (zoals > naar &gt;, " naar &quot;, en ' naar &apos;), maar kan geen kwaad.

HTML

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

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

Resultaat

Resultaat in de browser

Technische samenvatting

Content categories Flow content, palpable content.
Toegestane inhoud Phrasing content.
Weglaten van tags Geen, zowel de begin- als eindtag zijn verplicht.
Toegestane bovenliggende elementen Elk element dat flow content accepteert.
Impliciete ARIA-rol generic
Toegestane ARIA-rollen Alle
DOM-interface HTMLPreElement

Zie ook

Verwante elementen