Minimale Maskierung von Zeichen in HTML
Schreibt man HTML-Dokumente von Hand, möchte man sich auf den Inhalt konzentrieren. Dabei ist hilfreich, überflüssiges Markup wegzulassen und auf unnötiges Maskieren von Zeichen zu verzichten.
Durch Verwendung von Unicode können alle Zeichen direkt in Textdokumenten geschrieben werden. In HTML-Dokumenten müssen jedoch einige Zeichen unter bestimmten Umständen als Zeichenentität maskiert werden. Dabei sind folgende Faustregeln nützlich:
&
- Die Maskierung des Et-Zeichens als
&
ist nur nötig, wenn das Zeichen keine benannte Zeichenentität wie etwa
oder numerische Zeichenangabe wie&x20AC;
oder@
einleiten soll (Informationen zur Codierung des Et-Zeichens in HTML). "
,'
- Anführungszeichen müssen nur dann als
"
bzw.'
maskiert werden, wenn sie innerhalb eines mit dem gleichen Anführungszeichen umschlossenen Attributwertes verwendet werden. <
- Das Kleiner-als-Zeichen muss immer als
<
maskiert werden.
Beim Größer-als-Zeichen >
ist generell keine Maskierung nötig.
Innerhalb von style
- und script
-Elementen ist keine Maskierung dieser Zeichen durch HTML-Zeichenentitäten erforderlich. Bestimmte Zeichen sind jedoch nach den Regeln von CSS und JavaScript zu maskieren:
<style>
ul.terms > li:not(:first-child)::before {
content: '\a0& ';
white-space: pre;
}
</style>
<script>alert('1 < 2 & 2 > 1')</script>
Es gilt: 1 < 2 & 2 > 1.
Die Zeichenentität &#64; steht für das Zeichen @.
<img src="quotes.svg" alt="Zeichen " und '" title='Zeichen " und ''>
<a href="search?q=Hallo&lang=de">Hallo suchen</a>