Wie mische ich Links (<a> Tag) und Überschriften (<h1> Tag) im Webstandard?


95

Was ist der richtige Code, um einen Link mit Überschrift 1 gemäß den Webstandards zu erstellen?

ist es

<h1><a href="http://stackoverflow.com"> stackoverflow </a></h1>

oder

<a href="http://stackoverflow.com"><h1> stackoverflow </h1></a>

Vielen Dank

Antworten:


143

Gemäß Webstandards dürfen Sie keine Blockelemente in Inline-Elemente einfügen.

Da h1es sich um ein Blockelement und aein Inline-Element handelt, ist der richtige Weg:

<h1><a href="#">This is a title</a></h1>

Hier ist ein Link, über den Sie mehr erfahren können: w3 Visuelles Formatierungsmodell

Allerdings gibt es eine Ausnahme , dass in HTML5 ist es gültiges Block-Level - Elemente zu wickeln (wie div, poder h*) in Anker - Tags. Das Einwickeln von Elementen auf Blockebene in andere Inline-Elemente als Anker verstößt immer noch gegen die Standards.


19
In HTLM5 hat sich dies geändert. Beide Beispiele werden validiert - validator.w3.org .
Atadj

Schön. Es ist ein leichter Fehler, und während beide seine Logik bestätigen, dass Inline-Elemente natürlich Nachkommen von Elementen auf Blockebene sein sollten.
Bigmadwolf

@pushplaybang - Ich würde sagen, es ist semantischer, den Header in einen Link zu verpacken, es sei denn, nur ein Teil des Headers soll anklickbar sein (ich kann mir keinen Anwendungsfall dafür vorstellen). Unabhängig davon ist es schön, dass beide in HTML5 unterstützt werden.
aaaaaa


2

Soweit ich weiß, können Sie mit HTML5 Elemente auf Blockebene in Link-Tags einbinden. In älteren Browsern können jedoch Fehler auftreten. Ich bin auf Firefox 3.6.18 gestoßen und habe moz-rs-Heading = "" in meinen Code eingefügt. So brachen meine Stile. Wenn Sie sich für eine Problemumgehung interessieren, können Sie die Link-Tags in divs einschließen. Im Folgenden wird besser erklärt, warum der zusätzliche Code funktioniert. Http://oli.jp/2009/html5-block-level-links/


1

a > h1 wird Schwierigkeiten bei der Auswahl von Text verursachen

Probleme bei der Textauswahl

Da beide in HTML5 vollständig gültig sind, ist es besser, sie zu verwenden h1 > a

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.