<!DOCTYPE html><htmllang="de"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Meine erste Webseite</title></head><body><h1>Willkommen auf meiner Webseite!</h1><p>Das ist mein erster HTML-Text.</p></body></html>
LIVE DEMO
Willkommen auf meiner Webseite!
Das ist mein erster HTML-Text.
HTML-Dokumente beginnen mit <!DOCTYPE html> und haben eine klare Struktur: head für Metadaten, body für sichtbaren Inhalt.
HTML-Tags verstehen
<!-- Kommentare sind nicht sichtbar --><!-- Container-Tags (haben Öffnungs- und Schliesstag) --><h1>Überschrift</h1><p>Absatz mit Text</p><div>Allgemeiner Container</div><!-- Selbstschliessende Tags (keine Schliesstags) --><br><!-- Zeilenumbruch --><hr><!-- Horizontale Linie --><imgsrc="bild.jpg"alt="Beschreibung"><!-- Tags mit Attributen --><pclass="wichtig"id="erster-absatz">Absatz mit Attributen</p>
Tags sind in spitze Klammern eingeschlossen. Container-Tags haben Öffnungs- und Schliesstags, selbstschliessende Tags stehen allein.
2. Text-Elemente
Überschriften und Absätze
<!-- Überschriften von h1 (grösste) bis h6 (kleinste) --><h1>Hauptüberschrift (h1)</h1><h2>Unterüberschrift (h2)</h2><h3>Weitere Überschrift (h3)</h3><h4>Kleinere Überschrift (h4)</h4><h5>Noch kleinere Überschrift (h5)</h5><h6>Kleinste Überschrift (h6)</h6><!-- Absätze --><p>Das ist ein normaler Absatz mit Text.
Mehrzeilige Texte werden automatisch verbunden.</p><p>Das ist ein zweiter Absatz.
Zwischen Absätzen entstehen automatisch Abstände.</p>
LIVE DEMO
Hauptüberschrift (h1)
Unterüberschrift (h2)
Weitere Überschrift (h3)
Kleinere Überschrift (h4)
Noch kleinere Überschrift (h5)
Kleinste Überschrift (h6)
Das ist ein normaler Absatz mit Text. Mehrzeilige Texte werden automatisch verbunden.
Das ist ein zweiter Absatz. Zwischen Absätzen entstehen automatisch Abstände.
h1 ist die wichtigste Überschrift (nur einmal pro Seite verwenden). Absätze (p) haben automatische Abstände.
Text-Formatierung
<p>Normaler Text mit <strong>wichtigem Text</strong> und <em>betontem Text</em>.</p><p>Text kann auch <b>fett</b> oder <i>kursiv</i> dargestellt werden.</p><p>Weitere Formatierungen: <u>unterstrichen</u>, <mark>markiert</mark>, <small>kleiner Text</small></p><p>Mathematische Formeln: H<sub>2</sub>O oder E=mc<sup>2</sup></p><!-- Zeilenumbrüche und Trennlinien --><p>Erste Zeile<br>Neue Zeile nach Umbruch</p><hr><p>Text nach horizontaler Linie</p>
LIVE DEMO
Normaler Text mit wichtigem Text und betontem Text.
Text kann auch fett oder kursiv dargestellt werden.
Weitere Formatierungen: unterstrichen, markiert, kleiner Text
Mathematische Formeln: H2O oder E=mc2
Erste Zeile Neue Zeile nach Umbruch
Text nach horizontaler Linie
strong und em haben semantische Bedeutung, b und i sind nur visuell. sub/sup für tiefgestellt/hochgestellt.
3. Listen
Ungeordnete und geordnete Listen
<!-- Ungeordnete Liste (Punkte) --><h3>Einkaufsliste:</h3><ul><li>Milch</li><li>Brot</li><li>Äpfel</li><li>Käse</li></ul><!-- Geordnete Liste (Nummern) --><h3>Anleitung:</h3><ol><li>Computer einschalten</li><li>Browser öffnen</li><li>Webseite aufrufen</li><li>HTML lernen</li></ol><!-- Verschachtelte Listen --><h3>Programmiersprachen:</h3><ul><li>Frontend<ul><li>HTML</li><li>CSS</li><li>JavaScript</li></ul></li><li>Backend<ul><li>PHP</li><li>Python</li></ul></li></ul>
LIVE DEMO
Einkaufsliste:
Milch
Brot
Äpfel
Käse
Anleitung:
Computer einschalten
Browser öffnen
Webseite aufrufen
HTML lernen
Programmiersprachen:
Frontend
HTML
CSS
JavaScript
Backend
PHP
Python
ul für ungeordnete Listen (Punkte), ol für geordnete Listen (Nummern). Listen können verschachtelt werden.
Definitionslisten
<!-- Definitionslisten für Begriffserklärungen --><h3>HTML-Begriffe:</h3><dl><dt>HTML</dt><dd>HyperText Markup Language - Sprache zur Strukturierung von Webseiten</dd><dt>CSS</dt><dd>Cascading Style Sheets - Sprache für das Design von Webseiten</dd><dt>Tag</dt><dd>HTML-Element in spitzen Klammern, z.B. <p></dd><dt>Attribut</dt><dd>Zusätzliche Information für HTML-Tags, z.B. class="wichtig"</dd></dl>
LIVE DEMO
HTML-Begriffe:
HTML
HyperText Markup Language - Sprache zur Strukturierung von Webseiten
CSS
Cascading Style Sheets - Sprache für das Design von Webseiten
Tag
HTML-Element in spitzen Klammern, z.B. <p>
Attribut
Zusätzliche Information für HTML-Tags, z.B. class="wichtig"
Definitionslisten (dl) bestehen aus Begriffen (dt) und Definitionen (dd). Ideal für Glossare und Erklärungen.
4. Links und Navigation
Verschiedene Link-Arten
<!-- Externe Links --><p>Besuche <ahref="https://www.google.com">Google</a> für Suchen.</p><!-- Link in neuem Tab öffnen --><p>Lerne <ahref="https://developer.mozilla.org"target="_blank">HTML bei MDN</a> (neuer Tab).</p><!-- Interne Links (andere Seiten) --><nav><ahref="index.html">Startseite</a> | <ahref="about.html">Über uns</a> | <ahref="contact.html">Kontakt</a></nav><!-- Email und Telefon Links --><p>Kontakt: <ahref="mailto:info@example.com">Email senden</a> oder <ahref="tel:+41-123-456-789">anrufen</a></p><!-- Download-Link --><p><ahref="dokument.pdf"download>PDF herunterladen</a></p>
href definiert das Ziel. target="_blank" öffnet neuen Tab. mailto: und tel: für Email/Telefon.
Anker-Links (Sprungmarken)
<!-- Inhaltsverzeichnis mit Sprungmarken --><h2>Inhaltsverzeichnis</h2><nav><ul><li><ahref="#einleitung">Einleitung</a></li><li><ahref="#hauptteil">Hauptteil</a></li><li><ahref="#fazit">Fazit</a></li></ul></nav><!-- Abschnitte mit IDs --><sectionid="einleitung"><h2>Einleitung</h2><p>Das ist die Einleitung meines Artikels...</p></section><sectionid="hauptteil"><h2>Hauptteil</h2><p>Hier kommt der Hauptinhalt...</p></section><sectionid="fazit"><h2>Fazit</h2><p>Zusammenfassung und Schluss...</p></section><!-- Link zum Seitenanfang --><p><ahref="#top">↑ Nach oben</a></p>
Anker-Links (#id) springen zu Elementen mit passender ID. Nützlich für Navigation in langen Dokumenten.
5. Bilder und Medien
Bilder einbinden
<!-- Einfaches Bild --><imgsrc="landschaft.jpg"alt="Schöne Berglandschaft im Sommer"><!-- Bild mit Grösse und Titel --><imgsrc="logo.png"alt="Firmenlogo"width="200"height="100"title="Unsere Firma seit 1990"><!-- Bild mit Bildunterschrift --><figure><imgsrc="team.jpg"alt="Unser Team bei der Arbeit"><figcaption>Unser motiviertes Team bei der Projektbesprechung</figcaption></figure><!-- Bild als Link --><ahref="grosse_version.jpg"><imgsrc="vorschau.jpg"alt="Klick für grössere Ansicht"></a><!-- Responsive Bilder (verschiedene Grössen) --><imgsrc="bild-klein.jpg"srcset="bild-klein.jpg 400w, bild-mittel.jpg 800w, bild-gross.jpg 1200w"sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, 1200px"alt="Responsive Bild">
LIVE DEMO
📸 Hier wäre ein Bild
landschaft.jpg - Schöne Berglandschaft im Sommer
👥 Team Foto
Unser motiviertes Team bei der Projektbesprechung
alt-Attribute sind Pflicht für Barrierefreiheit. figure/figcaption für Bilder mit Unterschriften.
Video und Audio
<!-- Video einbinden --><videowidth="640"height="480"controls><sourcesrc="mein-video.mp4"type="video/mp4"><sourcesrc="mein-video.webm"type="video/webm">Dein Browser unterstützt das Video-Tag nicht.</video><!-- Video mit Vorschaubild und Autoplay --><videowidth="640"height="480"controlsposter="vorschaubild.jpg"preload="metadata"><sourcesrc="video.mp4"type="video/mp4">Video wird nicht unterstützt.</video><!-- Audio einbinden --><audiocontrols><sourcesrc="musik.mp3"type="audio/mpeg"><sourcesrc="musik.ogg"type="audio/ogg">Dein Browser unterstützt das Audio-Tag nicht.</audio><!-- YouTube Video einbetten --><iframewidth="560"height="315"src="https://www.youtube.com/embed/VIDEO_ID"frameborder="0"allowfullscreen></iframe>
LIVE DEMO
▶️ VIDEO 640x480
Video mit controls, poster und verschiedenen Formaten
PLAYPAUSE
2:34 / 4:12VOL
Audio-Player mit controls
controls zeigt Player-Buttons. Mehrere source-Formate für Browser-Kompatibilität. poster für Video-Vorschaubild.
thead/tbody strukturieren Tabellen. th für Überschriften, td für Daten. caption beschreibt die Tabelle.
Erweiterte Tabellen-Features
<!-- Tabelle mit colspan und rowspan --><table><caption>Stundenplan</caption><thead><tr><th>Zeit</th><th>Montag</th><th>Dienstag</th><th>Mittwoch</th></tr></thead><tbody><tr><td>08:00-09:30</td><td>Mathematik</td><tdcolspan="2">Projektarbeit (Doppelstunde)</td></tr><tr><td>09:45-11:15</td><tdrowspan="2">Labor (Doppelstunde)</td><td>Deutsch</td><td>Englisch</td></tr><tr><td>11:30-13:00</td><!-- Zelle für Labor wird durch rowspan übersprungen --><td>Geschichte</td><td>Sport</td></tr></tbody></table><!-- Tabelle mit Kopf- und Fusszeile --><table><thead><tr><th>Produkt</th><th>Preis</th><th>Menge</th><th>Summe</th></tr></thead><tbody><tr><td>Laptop</td><td>899.00 CHF</td><td>2</td><td>1798.00 CHF</td></tr></tbody><tfoot><tr><thcolspan="3">Gesamtsumme:</th><th>1798.00 CHF</th></tr></tfoot></table>
colspan verbindet Spalten horizontal, rowspan vertikal. tfoot für Summen- oder Fusszeilen.
7. Formulare
Grundlegende Formular-Elemente
<formaction="/verarbeitung.php"method="post"><!-- Textfelder --><labelfor="vorname">Vorname:</label><inputtype="text"id="vorname"name="vorname"required><labelfor="email">E-Mail:</label><inputtype="email"id="email"name="email"required><!-- Passwort --><labelfor="passwort">Passwort:</label><inputtype="password"id="passwort"name="passwort"minlength="8"><!-- Nummer --><labelfor="alter">Alter:</label><inputtype="number"id="alter"name="alter"min="16"max="100"><!-- Datum --><labelfor="geburtsdatum">Geburtsdatum:</label><inputtype="date"id="geburtsdatum"name="geburtsdatum"><!-- Mehrzeiliger Text --><labelfor="nachricht">Nachricht:</label><textareaid="nachricht"name="nachricht"rows="4"cols="50"></textarea><!-- Buttons --><buttontype="submit">Absenden</button><buttontype="reset">Zurücksetzen</button></form>
LIVE DEMO
Labels gehören zu Input-Feldern (for="id"). type bestimmt die Eingabe-Art. required macht Felder Pflicht.
Auswahl-Elemente
<form><!-- Radio Buttons (nur eine Auswahl) --><fieldset><legend>Geschlecht:</legend><inputtype="radio"id="maennlich"name="geschlecht"value="m"><labelfor="maennlich">Männlich</label><inputtype="radio"id="weiblich"name="geschlecht"value="w"><labelfor="weiblich">Weiblich</label></fieldset><!-- Checkboxen (mehrere Auswahlen) --><fieldset><legend>Hobbys:</legend><inputtype="checkbox"id="sport"name="hobbys[]"value="sport"><labelfor="sport">Sport</label><inputtype="checkbox"id="lesen"name="hobbys[]"value="lesen"><labelfor="lesen">Lesen</label><inputtype="checkbox"id="musik"name="hobbys[]"value="musik"><labelfor="musik">Musik</label></fieldset><!-- Dropdown/Select --><labelfor="kanton">Kanton:</label><selectid="kanton"name="kanton"><optionvalue="">Bitte wählen...</option><optionvalue="zh">Zürich</option><optionvalue="be"selected>Bern</option><optionvalue="lu">Luzern</option></select><!-- Mehrfachauswahl --><labelfor="sprachen">Programmiersprachen (Mehrfachauswahl):</label><selectid="sprachen"name="sprachen[]"multiplesize="4"><optionvalue="html">HTML</option><optionvalue="css">CSS</option><optionvalue="js">JavaScript</option><optionvalue="php">PHP</option></select></form>
LIVE DEMO
Radio für Einzelauswahl, Checkbox für Mehrfachauswahl. fieldset gruppiert verwandte Felder. selected macht Option vorgewählt.
Semantische Tags beschreiben die Bedeutung des Inhalts, nicht nur das Aussehen. Wichtig für SEO und Barrierefreiheit.
Weitere semantische Elemente
<!-- Zeit und Datum --><p>Veröffentlicht am <timedatetime="2025-01-15T10:30:00">15. Januar 2025, 10:30 Uhr</time></p><!-- Markierter/wichtiger Text --><p>Das ist <mark>markierter Text</mark> und das ist <strong>wichtiger Text</strong>.</p><!-- Kontaktdaten --><address>Max Mustermann<br>Musterstrasse 123<br>8000 Zürich<br>E-Mail: <ahref="mailto:max@example.com">max@example.com</a></address><!-- Zitate --><blockquotecite="https://example.com/quelle"><p>"Das Internet ist für uns alle Neuland."</p><footer>— <cite>Angela Merkel</cite>, 2013</footer></blockquote><!-- Abkürzungen --><p>Ich lerne <abbrtitle="HyperText Markup Language">HTML</abbr>
und <abbrtitle="Cascading Style Sheets">CSS</abbr>.</p><!-- Details und Summary (ausklappbar) --><details><summary>Mehr Informationen anzeigen</summary><p>Hier sind zusätzliche Details, die standardmässig versteckt sind
und nur bei Klick auf "Mehr Informationen" sichtbar werden.</p></details>
LIVE DEMO
Veröffentlicht am
Das ist markierter Text und das ist wichtiger Text.
Max Mustermann
Musterstrasse 123
8000 Zürich
E-Mail: max@example.com
"Das Internet ist für uns alle Neuland."
Ich lerne HTML und CSS.
Mehr Informationen anzeigen
Hier sind zusätzliche Details, die standardmässig versteckt sind und nur bei Klick auf "Mehr Informationen" sichtbar werden.
time für Datumsangaben, address für Kontaktdaten, blockquote für Zitate, abbr für Abkürzungen, details/summary für ausklappbare Inhalte.
💡 Best Practices:
• Verwende semantische Tags statt nur div und span
• Nur ein h1 pro Seite für die Hauptüberschrift
• main umschliesst den Hauptinhalt (ohne Navigation/Sidebar)
• article für eigenständige Inhalte (Blog-Posts, News)
• section für thematisch zusammengehörige Bereiche
9. Meta-Tags und SEO-Grundlagen
Wichtige Meta-Tags im Head
<head><!-- Zeichenkodierung --><metacharset="UTF-8"><!-- Responsive Design --><metaname="viewport"content="width=device-width, initial-scale=1.0"><!-- SEO Meta-Tags --><title>HTML Lernen - Kompletter Anfänger Guide 2025</title><metaname="description"content="Lerne HTML von Grund auf! Kompletter Anfänger-Guide mit Beispielen, Live-Demos und praktischen Übungen. Perfekt für Einsteiger."><metaname="keywords"content="HTML lernen, HTML Tutorial, Webentwicklung, Anfänger, HTML5, Tags, Elemente"><metaname="author"content="M. Meili"><metaname="robots"content="index, follow"><!-- Social Media Meta-Tags (Open Graph) --><metaproperty="og:title"content="HTML Lernen - Anfänger Guide"><metaproperty="og:description"content="Kompletter HTML-Kurs für Einsteiger mit praktischen Beispielen"><metaproperty="og:image"content="https://example.com/html-tutorial-bild.jpg"><metaproperty="og:url"content="https://example.com/html-lernen"><!-- Twitter Cards --><metaname="twitter:card"content="summary_large_image"><metaname="twitter:title"content="HTML Lernen - Anfänger Guide"><!-- Favicon --><linkrel="icon"type="image/x-icon"href="/favicon.ico"><linkrel="apple-touch-icon"href="/apple-touch-icon.png"></head>
Meta-Tags geben Suchmaschinen und sozialen Medien wichtige Informationen über die Seite. title und description sind besonders wichtig für SEO.
🎯 SEO-Tipps:
• title: 50-60 Zeichen, beschreibend und einzigartig
• description: 150-160 Zeichen, lockend und informativ
• viewport meta-tag ist Pflicht für mobile Geräte
• Open Graph Tags für bessere Social Media Darstellung
Sauberer HTML-Code ist semantisch, barrierefrei und valide. Jedes Element hat einen klaren Zweck.
Häufige Fehler vermeiden
<!-- ❌ SCHLECHTES HTML - Häufige Fehler --><!-- Fehler 1: Fehlende oder falsche DOCTYPE --><!-- <html> ohne DOCTYPE ist veraltet --><!-- Fehler 2: Nicht geschlossene Tags --><p>Text ohne schliessenden Tag<div>Noch ein nicht geschlossener Container<!-- Fehler 3: Falsche Verschachtelung --><p>Text <strong>fett <em>und kursiv</strong> falsch</em></p><!-- Fehler 4: Fehlende alt-Attribute --><imgsrc="bild.jpg"><!-- Schlecht für Barrierefreiheit --><!-- Fehler 5: Mehrere h1-Tags --><h1>Erste Hauptüberschrift</h1><h1>Zweite Hauptüberschrift</h1><!-- Sollte h2 sein --><!-- Fehler 6: Veraltete Attribute --><fontcolor="red">Veraltetes Styling</font><center>Veraltete Zentrierung</center><!-- ✅ KORREKTUREN --><!-- Korrekt geschlossen --><p>Text mit schliessendem Tag</p><div>Korrekt geschlossener Container</div><!-- Korrekte Verschachtelung --><p>Text <strong><em>fett und kursiv</em></strong> richtig</p><!-- Mit alt-Attribut --><imgsrc="bild.jpg"alt="Beschreibung des Bildes"><!-- Korrekte Überschriften-Hierarchie --><h1>Hauptüberschrift</h1><h2>Unterüberschrift</h2><h3>Unter-Unterüberschrift</h3><!-- Modernes CSS statt veralteter Tags --><spanstyle="color: red;">Modernes Styling</span><divstyle="text-align: center;">Moderne Zentrierung</div>
Vermeide häufige Fehler wie nicht geschlossene Tags, falsche Verschachtelung und veraltete Elemente.
🔍 Validierung-Tools:
• W3C Markup Validator: validator.w3.org
• Browser-Entwicklertools: F12 → Console
• VS Code Extensions: HTMLHint, W3C Web Validator
• Online-Tools: HTML5 Validator, Nu Html Checker
11. Barrierefreiheit (Accessibility)
Warum Barrierefreiheit?
Barrierefreiheit bedeutet, Webseiten für alle Menschen zugänglich zu machen – inklusive Menschen mit Seh-, Hör- oder Motorik-Einschränkungen.
Screenreader und andere Hilfsmittel nutzen semantischen HTML-Code und spezielle Attribute.
Wichtige Attribute und Techniken
<!-- Alternativtext für Bilder --><imgsrc="beispiel.jpg"alt="Beschreibung des Bildes"><!-- aria-label und aria-describedby für Screenreader --><buttonaria-label="Menü öffnen">☰</button><inputaria-describedby="hilfe-text"type="text"><spanid="hilfe-text">Geben Sie Ihren Namen ein</span><!-- tabindex für Tastatur-Navigation --><buttontabindex="0">Klick mich</button><!-- Farbliche Kontraste beachten --><p>Achten Sie auf genügend Kontrast zwischen Text und Hintergrund!</p>
alt-Attribute bei Bildern sind Pflicht.
aria-label und aria-describedby machen Inhalte für Screenreader verständlich.
tabindex regelt die Reihenfolge beim Tabulator-Durchlauf.
Gute Kontraste helfen allen Nutzern.
Accessible Formulare
<labelfor="email">E-Mail:</label><inputid="email"type="email"aria-required="true"><!-- Fehlermeldung für Screenreader --><spanrole="alert">Bitte geben Sie eine gültige E-Mail-Adresse ein.</span>
Labels müssen immer mit Inputs verbunden sein. role="alert" informiert Screenreader über wichtige Meldungen.
<!-- Dies ist ein Kommentar und wird nicht angezeigt --><p>Text mit Kommentar darüber</p>
Code-Struktur und Einrückung
<!DOCTYPE html><html><head><title>Strukturierte Seite</title></head><body><!-- Bereich für Navigation --><nav><ul><li><ahref="#home">Home</a></li></ul></nav></body></html>
Einrückung und Leerzeilen machen HTML-Code lesbarer.
Kommentare helfen beim Verständnis für andere (und dich selbst).
📚 Tipps:
• Schreibe verständliche Kommentare.
• Halte deine Einrückung konsequent.
• Nutze sprechende Namen für Klassen und IDs.