Время для прочтения: 1 мин. 2 сек.

Вложенные ссылки в HTML

Как известно, в спецификации HTML чётко указано, что вложенных ссылок нет и быть не может. Но, буквально на днях, Роман Комаров (разработчик интерфейсов в Яндексе) предложил поистине простой и вполне рабочий вариант решения данной проблемы.

Суть проблемы

Дело в том, что при написании данной конструкции:


<a href="#post">
	Название поста <a href="#category">Категория</a><br>
	Анонс поста
</a>

Парсер браузера просто «съест» ваш код и на выходе вы получите:


<a href="#post">
	Название поста</a> <a href="#category">Категория</a><br>
	Анонс поста

Что, соответственно, является совсем не тем, чего вы хотели добиться, вкладывая ссылки друг в друга.

Решение проблемы

Чтобы пофиксить данное стандартное поведение браузера (который следует указаниям спецификации), достаточно вложенную ссылку обернуть в тег <object>:


<a href="#post">
	Название поста 
	<object>
		<a href="#category">Категория</a>
	</object><br>
	Анонс поста
</a>

Теперь все работает как надо. За разъяснениями милости прошу в блог Романа.

Поддержка браузерами

Браузер Версия
Internet Explorer 9+
Firefox 4+
Opera 9+
Google Chrome 14+
Safari 5.1+

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>