Я хотел бы иметь что-то, что выглядит и ведет себя как гиперссылка внутри большего прямоугольника (полная страница), которая также является гиперссылкой. Ниже представлено 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>
...