Me gustaría tener algo que se vea y se comporte como un hipervínculo dentro de un rectángulo más grande (página completa) que también es hipervínculo. A continuación se presenta la representación ASCII-art de lo que debe ser similar:Áreas hipervinculadas anidadas sin elementos de enlace anidados en fuente HTML
|-------------------------------------------| | Some text [_link_] | |-------------------------------------------|
El rectángulo conjunto (elemento de bloque) externo va a hipervínculo. Dentro de este rectángulo debe haber algo de texto, y al final de este texto debe haber otro enlace.
enlaces Desafortunadamente anidación (elementos a) es ilegal en (X) HTML:
12.2.2 enlaces anidados son ilegales
Enlaces y anclajes definidos por el elemento A no debe ser anidados ; an Un elemento no debe contener ningún otro elemento A.
(desde http://www.w3.org/TR/html401/struct/links.html#h-12.2.2), por lo que la forma más natural de la implementación anterior
<a href="xxx" style="display: block">
Some text
<a href="yyy">link</a>
</a>
no es HTML válido. Lo que es aún peor es que algunos navegadores web en algunos casos hacen cumplir este requisito moviendo el elemento de enlace interno justo fuera del elemento de cierre del elemento de enlace exterior. Esto, por supuesto, rompe completamente el diseño.
Así que lo que me gustaría preguntar es cómo llegar a diseño presentado anteriormente utilizando HTML y CSS (pero no JavaScript), pero sin elementos de enlace anidados en fuente HTML. Sería bueno si el comportamiento fuera lo más parecido posible al que tiene elementos de enlace anidados (para los navegadores que no son demasiado estrictos al implementar el estándar HTML).
Editar (16-01-2009)
Aclaración: soluciones que utilizan más de dos elementos de enlace son perfectamente aceptables
<a href="xxx" ...>Some text</a>
<a href="yyy" ...>Link</a>
<a href="xxx" ...>& nbsp;</a>
...
Hay algunas soluciones que se me ocurren, pero creo que todas usan javascript. Me gustaría ver si alguien puede hacer uno con CSS + HTML puro –
... te das cuenta de lo mal que suena desde el punto de vista de la accesibilidad, ¿no? ¡Se supone que no debes poner enlaces * uno al lado del otro, y mucho menos adentro! :-) –
Por otro lado, algunos consejos de usabilidad/accesibilidad sugieren que los enlaces tipo menú deben abarcar todo el ancho, para no requerir buscar y hacer clic sobre el texto solamente. –