92 votes

Les ancres à l'intérieur des en-têtes, ou vice-versa?

J'ai toujours trébucher sur cette (simple question) lors de la prise par exemple les blogs Wordpress. Dois-je envelopper le titre, qui devrait également être un lien, dans un ancrage <a> élément, ou devrait-il être dans l'autre sens. Et pourquoi?

(1):

<a href="foo">
    <h1>bar</h1>
</a>

(2):

<h1>
    <a href="foo">bar</a>
</h1>

Je finis toujours par le faire (1), car il me semble plus logique pour moi, que le titre est enveloppé dans un lien.

Faut-il faire une différence dans, par exemple, le RÉFÉRENCEMENT? Est-il une meilleure pratique?

84voto

animuson Points 23184

Avant HTML5:
L'ancre doit être à l'intérieur de l'en-tête, vous ne pouvez pas mettre un bloc-niveau de l'élément à l'intérieur d'une ancre, et la plupart des navigateurs ne vont pas rendre 100% fiable si vous ne.

En HTML5:
Il n'a pas d'importance, utilisez celle que l'on fait le plus de sémantique du sens. Probablement la première.

N'oubliez pas que si votre document est à l'aide de HTML4 DTD, il ne sera pas validé et peut ne pas s'afficher correctement parce que c'est à l'aide de l'ancien règlement, où un point d'ancrage ne peut pas contenir un bloc de niveau élément. Seulement, la première option est en HTML5. XHTML est équivalent à HTML4, je ne suis pas sûr à 100% sur XHTML1.1 si (essayer et de voir si il valide).

8voto

MGZero Points 3088

Si vous êtes à l'aide d'une DTD HTML 4.01 (Pas sûr de la transition, mais certainement le strict), alors le point d'ancrage de l'élément doit apparaître à l'intérieur de l'élément d'en-tête. Vérifiez votre doctype si vous ne savez pas qui DTD que vous utilisez (en supposant que vous en avez un, vous avez besoin pour oyur code pour être considérée comme valide). Le doctype HTML5 ressemble à ceci:

<!DOCTYPE HTML>

Le 4.01 doctype est:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

Je voudrais aussi suggérer de vous familiariser avec la DTD lui-même si vous allez travailler avec des 4.01, il répondra à tous ces types de questions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X