Der Begriff „HTML-Befehl" ist verbreitet und irreführend zugleich. Ein Befehl weist etwas an, etwas zu tun. HTML weist nichts an – es beschreibt, was ein Textabschnitt ist.
Der Unterschied in einem Beispiel
<h1>Wichtige Nachricht</h1>
<p>Ein Absatz mit <strong>wichtigem</strong> Text.</p>
Hier steht nirgends „schreibe groß" oder „mache fett". Es steht: Dies ist die Hauptüberschrift, dies ist ein Absatz, dieser Teil ist wichtig. Wie das aussieht, entscheidet das Stylesheet – im Zweifel das voreingestellte des Browsers.
Die Folge dieser Trennung: HTML kann nicht rechnen, nichts speichern, nicht auf Klicks reagieren. Wer das sucht, braucht JavaScript.
Die Elemente, die den Alltag ausmachen
Gliederung: h1 bis h6 für Überschriften, p für Absätze, ul, ol und li für Listen, table für Tabellen.
Bereiche: header, nav, main, article, section, aside, footer.
Im Text: a für Verweise, strong für Wichtiges, em für Betonung, code für Quelltext, abbr für Abkürzungen.
Medien: img, picture, video, audio, svg.
Formulare: form, input, textarea, select, button, label.
Das sind rund dreißig Elemente. Mit ihnen lässt sich der überwiegende Teil aller Webseiten aufbauen – die übrigen der Spezifikation sind Spezialfälle.
Ein vollständiges Beispiel
<article>
<h2>Kurze Anleitung</h2>
<p>Diese Anleitung braucht drei Schritte:</p>
<ol>
<li>Datei anlegen</li>
<li>Grundgerüst einfügen</li>
<li>Im Browser öffnen</li>
</ol>
<p>Mehr dazu im <a href="/glossar/">Glossar</a>.</p>
</article>
Woran man die falsche Erwartung erkennt
Immer dann, wenn eine Frage mit „Wie mache ich in HTML, dass …" beginnt und eine Bedingung folgt, ist die Antwort meistens: gar nicht. Ein Menü, das sich beim Klick öffnet, braucht JavaScript – oder ein Element, das das Verhalten mitbringt, wie details und summary:
<details>
<summary>Mehr anzeigen</summary>
<p>Dieser Text erscheint erst nach dem Klick.</p>
</details>
Das ist kein Widerspruch zur Regel: Das Verhalten steckt nicht in einem Befehl, sondern in der Bedeutung des Elements, die der Browser kennt.