Я хотел бы иметь что-то, что выглядит и ведет себя как гиперссылка внутри большего прямоугольника (на всю страницу), который также является гиперссылкой. Ниже представлено ASCII-изображение, как оно должно выглядеть:
|-------------------------------------------|
| Some text [_link_] |
|-------------------------------------------|
Весь внешний прямоугольник (элемент блока) должен быть гиперссылкой. Внутри этого прямоугольника должен быть какой-то текст, а в конце этого текста должна быть еще одна ссылка.
К сожалению, вложенные ссылки (элементы A) недопустимы в (X) HTML:
12.2.2 Вложенные ссылки недопустимы
Ссылки и якоря, определенные элементом A, не должны быть вложенными;
элемент A не должен содержать никаких других элементов A.
(из http://www.w3.org/TR/html401/struct/links.html#h-12.2.2),, поэтому наиболее естественный способ реализации выше
<a href="xxx" style="display: block">
Some text
<a href="yyy">link</a>
</a>
недопустимый HTML. Еще хуже то, что некоторые веб-браузеры в некоторых случаях применяют это требование, перемещая внутренний элемент ссылки только снаружи закрывающего элемента внешнего элемента ссылки. Это, конечно, полностью нарушает макет.
Итак, я хотел бы спросить, как получить макет , представленный выше, с использованием HTML и CSS (но без JavaScript), но без вложенных элементов ссылки в исходном коде HTML. Было бы хорошо, если бы поведение было максимально приближено к поведению с вложенными элементами ссылок (для браузеров, которые не слишком строги в реализации стандарта HTML).
Редактировать (16-01-2009)
Уточнение: Решения, в которых используется более двух элементов связи, вполне приемлемы
<a href="xxx" ...>Some text</a>
<a href="yyy" ...>Link</a>
<a href="xxx" ...>& nbsp;</a>
...