Je voudrais avoir quelque chose qui ressemble et se comporte comme un hyperlien dans un rectangle plus grand (page entière) qui est aussi un lien hypertexte. Ci-dessous une représentation ASCII-art de ce qu'il devrait ressembler à:Zones hyperliées imbriquées sans éléments de lien imbriqués dans la source HTML
|-------------------------------------------| | Some text [_link_] | |-------------------------------------------|
Le rectangle extérieur entier (élément de bloc) doit être lien hypertexte. A l'intérieur de ce rectangle il devrait y avoir du texte, et à la fin de ce texte il devrait y avoir un autre lien.
liens Malheureusement imbrication (A éléments) est illégale en (X) HTML:
12.2.2 liens emboîtés sont illégales
Liens et points d'ancrage définis par l'élément A ne doit pas être imbriquées ; an Un élément ne doit pas contenir d'autres éléments A.
(de http://www.w3.org/TR/html401/struct/links.html#h-12.2.2), de sorte que la façon la plus naturelle de la mise en œuvre ci-dessus
<a href="xxx" style="display: block">
Some text
<a href="yyy">link</a>
</a>
n'est pas valide HTML. Ce qui est encore pire est que certains navigateurs Web dans certains cas imposent cette exigence en déplaçant l'élément de liaison interne juste à l'extérieur de l'élément de fermeture de l'élément de liaison externe. Cela, bien sûr, brise complètement la disposition.
Donc ce que je voudrais vous demander est de savoir comment arriver à la mise en page présenté ci-dessus en utilisant HTML et CSS (mais pas JavaScript), mais sans éléments de liaison imbriqués dans la source HTML. Ce serait bien si le comportement était le plus proche possible de celui avec les éléments de lien imbriqués (pour les navigateurs qui ne sont pas trop stricts dans l'implémentation de la norme HTML).
Modifier (16-01-2009)
Précision: Solutions qui utilisent plus de deux éléments de liaison sont parfaitement acceptables
<a href="xxx" ...>Some text</a>
<a href="yyy" ...>Link</a>
<a href="xxx" ...>& nbsp;</a>
...
Je peux penser à quelques solutions, mais je pense qu'elles utilisent toutes le javascript. Je serais intéressé de voir si quelqu'un peut en faire un en pur CSS + HTML –
... vous réalisez à quel point ça sonne du point de vue de l'accessibilité, n'est-ce pas? Vous n'êtes pas censé mettre des liens * les uns à côté des autres, et encore moins à l'intérieur! :-) –
D'un autre côté, certains conseils d'utilisabilité/accessibilité suggèrent que les liens de type menu doivent couvrir toute la largeur, pour ne pas nécessiter de trouver et de cliquer sur le texte seulement. –