Hallo Karli!
Willkommen zu Teil 2 & 3 des <a>-Tags

Gestern haben wir im Teil 1 über Verlinkungen von eigenen Unterseiten auf einer Startseite gesprochen, also wie man ein Navigationsmenü in HTML erstellt. Heute lernst du, wie du Verlinkungen zu externen Webseiten erstellst und wie du Sprungmarken innerhalb einer Seite setzt.

Exkurs 1: Was steht da eigentlich in der Adresszeile?

Bevor wir externe Webseiten verlinken, müssen wir verstehen, wie der Browser sie findet. Das Geheimnis liegt in der URL (Uniform Resource Locator), umgangssprachlich auch einfach "Webadresse" genannt.

So sieht eine typische Browseradresszeile aus:

https://wiki.selfhtml.org/wiki/HTML/Elemente/a?parameter1=test&parameter2=test2

Diese lange Kette lässt sich in logische Einzelteile zerlegen:

Bestandteil Beispiel aus der Zeile Erklärung
HTTP-Protokoll https:// Die "Sprache", in der Server und Browser miteinander reden. Das "s" steht für "secure" (sicher/verschlüsselt). Erklärt in Exkurs 2.
Domain / Host wiki.selfhtml.org Der Name des Servers bzw. der Website, auf der die Inhalte liegen.
Pfad /wiki/HTML/Elemente/a Der genaue Ort (wie ein Ordnerpfad auf deinem Computer), wo das HTML-Dokument liegt. Hier mit der Besonderheit, dass am Ende kein ".html" steht, weil es vermutlich ein PHP-Script ist.
Parameter ?parameter1=test&parameter2=test2 Zusatzinformationen, die mit einem ? eingeleitet werden, nennt man GET-Parameter. Sie übergeben Daten an die Webseite (z. B. Suchbegriffe oder Filter). Einzelne Parameter werden mit einem & getrennt.

Exkurs 2: Was ist das HTTP-Protokoll und warum ist es bei externen Links so wichtig?

Das HTTP-Protokoll (Hypertext Transfer Protocol) ist die "Sprache", mit der dein Webbrowser und der Webserver miteinander kommunizieren. Es regelt, wie Daten im Internet angefordert und übertragen werden.

Die Kommunikation folgt immer dem Prinzip von Anfrage (Request) und Antwort (Response):

HTTP vs. HTTPS

Heute siehst du fast nur noch https://. Das S steht für Secure (sicher). Im Gegensatz zum alten HTTP werden hier alle Daten (wie Passwörter oder Formulardaten) abhörsicher verschlüsselt übertragen.

⚠️ Warum ist das Protokoll bei externen Links so wichtig?

Wenn du zu einer externen Webseite verlinkst, musst du das Protokoll (https://) zwingend mitschreiben! Warum? Der Browser muss wissen, ob es sich um einen absoluten oder relativen Link handelt:

Die wichtigsten HTTP-Methoden (Möglichkeiten)

Ein Browser kann nicht nur Daten abrufen, sondern auch senden. Dafür nutzt er verschiedene Methoden:

Methode Bedeutung Typischer Einsatzbereich
GET Daten abrufen Eine normale Website oder ein Bild laden. Parameter hängen offen an der URL.
POST Daten senden Ein Kontaktformular abschicken oder ein Passwort beim Login absenden (Daten sind unsichtbar im Hintergrund).
PUT / PATCH Daten ändern Ein bereits bestehendes Benutzerprofil aktualisieren.
DELETE Daten löschen Einen Post oder ein Konto vom Server entfernen.

HTTP-Statuscodes (Antworten des Servers)

Der Server schickt bei jeder Antwort eine dreistellige Nummer mit, um zu zeigen, ob alles geklappt hat:

Verlinkung zu einer externen Webseite

Um nun von deiner eigenen Seite genau auf diese Beispiel-URL zu verlinken, nutzt du wieder das <a>-Tag mit dem Attribut href. Wenn sich die Seite jedoch in einem neuen Tab öffnen soll, was bei externen Links üblich ist, fügst du das Attribut target="_blank" hinzu.

Code-Beispiel:

<a href="https://selfhtml.org" target="_blank">Hier geht es zu SelfHTML</a>

Exkurs 3: Das target-Attribut

Mit dem Attribut target bestimmst du, wo der Link geöffnet werden soll:

Teil 3: Verlinkungen innerhalb einer Seite (Anchor / Sprungmarken)

Manchmal sind Webseiten sehr lang. Damit der Nutzer nicht ewig scrollen muss, kannst du "Anker" (engl. Anchor) setzen. Das funktioniert über das Attribut name beim <a>-Tag. Angesprungen wird dieser Anker über das Raute-Symbol (#).

Strukturelles Beispiel:

Hier siehst du, wie ein Dokument mit einem Inhaltsverzeichnis aufgebaut ist, das zu 3 Textabschnitten springt und am Ende wieder nach oben führt:

<!-- Das Inhaltsverzeichnis ganz oben -->
<a name="oben"></a> <!-- Hier ist der Anker für ganz oben -->

<h2>Inhaltsverzeichnis</h2>
<ul>
    <li><a href="#abschnitt1">Gehe zu Abschnitt 1</a></li>
    <li><a href="#abschnitt2">Gehe zu Abschnitt 2</a></li>
    <li><a href="#abschnitt3">Gehe zu Abschnitt 3</a></li>
</ul>

<!-- Die Textabschnitte weiter unten -->
<h3><a name="abschnitt1">Abschnitt 1: Einleitung</a></h3>
<p>Hier steht der Text zur Einleitung...</p>

<h3><a name="abschnitt2">Abschnitt 2: Hauptteil</a></h3>
<p>Hier steht der Text zum Hauptteil...</p>

<h3><a name="abschnitt3">Abschnitt 3: Schlusswort</a></h3>
<p>Hier steht das Schlusswort...</p>

<!-- Zurück nach oben -->
<p><a href="#oben">zum Inhaltsverzeichnis</a></p>

Was passiert hier genau?

Wenn du dir das obige Beispiel anschaust, siehst du das Zusammenspiel aus zwei wichtigen Elementen:

Wichtig: Der Name beim Anker (name="xyz") wird komplett ohne Raute geschrieben. Die Raute wird nur im Inhaltsverzeichnis beim Link (href="#xyz") verwendet, um den Sprungbefehl zu aktivieren!

🛠️ Praktische Aufgabe für Karl

Erweitere nun dein bestehendes Lernprojekt um das Gelernte. Es gibt zwei To-Dos für dich:

  1. In der bestehenden index.html:
    Erweitere dein Menü in der unsortierten Liste (<ul>) um zwei externe Links und einen lokalen Link:
    • Link 1: Führt zur SelfHTML-Beispiel-URL (siehe oben) mit der Beschriftung "Hilfe zu A-Tags".
    • Link 2: Führt direkt zu Google und führt beim Anklicken sofort eine Suche nach "HTML A-Tag" aus. Tipp: Verwende hierfür diesen URL-Anhang: /search?q=HTML+A-Tag.
    • Link 3 (lokal): Verlinke auf eine neue, lokale Datei namens glossar.html mit dem Link-Text "Glossar".
  2. Erstelle die neue Datei glossar.html:
    Diese Seite soll wie folgt aufgebaut sein:
    • Eine Hauptüberschrift Glossar.
    • Ein Inhaltsverzeichnis als unsortierte Liste, die zu den drei Tag-Überschriften "DIV", "SPAN" und "A" springt.
    • Darunter die drei Abschnitte. Nutze dafür die <a name="xy">-Anker für die Überschriften, damit man vom Inhaltsverzeichnis dorthin springen kann.
    • Nutze die unten bereitgestellten Erklärungstexte für die Tags.
    • Ganz am Ende der Seite soll ein Link "zurück zum Inhaltsverzeichnis" stehen und natürlich ein Link zu deiner Startseite.

Die vorzugebenden Erklärungstexte für dein Glossar:

DIV: Das Divisor-Element (kurz für Division) teilt die Webseite in logische Bereiche auf. Es verhält sich wie ein Block-Element.
SPAN: Das Span-Element wird verwendet, um Textabschnitte innerhalb einer Zeile (Inline-Element) zu markieren oder zu gruppieren.
A: Das Anchor-Element (Anker) dient zur Erstellung von Hyperlinks zu anderen Webseiten oder internen Sprungmarken.

💡 Hilfe benötigt? Hier geht's zur Auflösung der Aufgabe (aber erst selbst versuchen! 😉)

So sieht deine erweiterte index.html aus:

...
    <ul>
        <!-- Hier stehen deine bisherigen Menüpunkte in der Liste -->
        <li><a href="https://selfhtml.org" target="_blank">Hilfe zu A-Tags</a></li>
        <li><a href="https://google.com" target="_blank">Google-Suche nach HTML A-Tag</a></li>
        <li><a href="glossar.html">Zum Glossar</a></li>
    </ul>
...

So sieht z.B. deine neue glossar.html aus:

<!DOCTYPE html>
<html>
<head>
    <title>Glossar</title>
</head>
<body>

    <!-- Anker für den Anfang der Seite -->
    <a name="glossar-start"></a>

    <h1>Glossar</h1>

    <h2>Inhaltsverzeichnis</h2>
    <ul>
        <li><a href="#tag-div">DIV (Divisor)</a></li>
        <li><a href="#tag-span">SPAN</a></li>
        <li><a href="#tag-a">A (Anchor)</a></li>
    </ul>

    <hr>

    <h3><a name="tag-div">DIV (Divisor)</a></h3>
    <p>Das Divisor-Element (kurz für Division) teilt die Webseite in logische Bereiche auf. Es verhält sich wie ein Block-Element.</p>

    <h3><a name="tag-span">SPAN</a></h3>
    <p>Das Span-Element wird verwendet, um Textabschnitte innerhalb einer Zeile (Inline-Element) zu markieren oder zu gruppieren.</p>

    <h3><a name="tag-a">A (Anchor)</a></h3>
    <p>Das Anchor-Element (Anker) dient zur Erstellung von Hyperlinks zu anderen Webseiten oder internen Sprungmarken.</p>

    <hr>

    <p><a href="#glossar-start">zurück zum Inhaltsverzeichnis</a></p>
    <p><a href="index.html">Zurück zur Startseite</a></p>

</body>
</html>