Wikipedia macht von dieser Funktion regen Gebrauch:
<a href="#History">[...]</a>
<span class="mw-headline" id="History">History</span>
Und Wikipedia funktioniert für alle, also würde ich mich sicher fühlen, bei dieser Form zu bleiben.
Vergessen Sie auch nicht, dass Sie dies nicht nur mit Spans, sondern auch mit Divs oder sogar Tabellenzellen verwenden können, und dann haben Sie Zugriff auf die :target-Pseudoklasse des Elements. Passen Sie nur auf, dass Sie nicht die Breite ändern, wie bei fettgedrucktem Text, denn das verschiebt den Inhalt, was störend ist.
Benannte Anker - ich stimme dafür, sie zu vermeiden:
- "Namen und ids liegen im gleichen Namensraum..." - Zwei Attribute mit demselben Namensraum sind einfach verrückt. Sagen wir einfach, dass es bereits veraltet ist.
- "Verankert Elemente ohne href-Attribut" - Wieder einmal wird die Art eines Elements (Hyperlink oder nicht) durch ein Attribut definiert?! Doppelt verrückt. Der gesunde Menschenverstand sagt, dass man es ganz vermeiden sollte.
- Wenn Sie einen Anker ohne Pseudoklasse formatieren, gilt die Formatierung für jeden Anker. In CSS3 können Sie dies mit Attributselektoren (oder gleiches Styling für jede Pseudoklasse) umgehen, aber es ist immer noch ein Workaround. Das Problem tritt normalerweise nicht auf, weil man die Farben für jede Pseudoklasse auswählt, und da die Unterstreichung standardmäßig vorhanden ist, macht es nur Sinn, sie zu entfernen, was sie dem anderen Text gleich macht. Aber wenn Sie sich jemals entscheiden, Ihre Links fett zu machen, wird das zu Problemen führen.
- Netscape 4 unterstützt zwar die id-Funktion nicht, aber ein unbekanntes Attribut wird trotzdem keine Probleme verursachen. Das ist es, was für mich Kompatibilität bedeutet.
2 Stimmen
Der Link sollte eigentlich lauten
http://example.com#foo
(also ohne das / vor #)87 Stimmen
Eigentlich,
http://example.com#foo
yhttp://example.com/#foo
sind gleichwertig, wie in einem der RFCs über URIs definiert.1 Stimmen
Bitte überprüfen Sie diese Antwort: stackoverflow.com/a/69869066/2457251
0 Stimmen
Beachten Sie, dass
<h1 id="foo"></h1>
kann referenziert werden vonwindow.foo
in Javascript, was vielleicht nicht das ist, was Sie erwarten, siehe stackoverflow.com/a/28568419/247696