Intereting Posts
Добавление нескольких classов в таблицу td HTML: Как получить мои подстраницы, перечисленные в google search Как прокрутить «tbody» таблицы независимо от «thead»? Как вы даете iframe 100% height Юникод через CSS: до Можно ли изменить только значение Y фонового положения в CSS? Угловая, а не правильная маршрутизация. URL-адрес localhost: 8081 / #! / # PageName Исключение произошло при очистке данных] с помощью основной причины java.io.IOException: stream закрыт Ручки печатают неправильную вещь, когда итерация через один и тот же массив трижды Переключить Да / Нет с несколькими вопросами IE11 показывает каждый элемент {display: table-cell} на новой строке Могу ли я использовать: перед или: после псевдоэлемента в поле ввода? Динамическое создание и добавление тега в JavaScript Скремблирование динамически созданного html внутри приложения для Android Кодирование UTF-8 при экспорте таблицы HTML в Excel

Почему вложенные якорные метки запрещены?

Я узнал, что привязка тегов привязки не соответствует стандарту HTML.

Из W3:

Связи и привязки, определенные элементом A, не должны быть вложенными; элемент A не должен содержать никаких других элементов A.

Поскольку DTD определяет элемент LINK как пустой, элементы LINK также могут быть не вложены.

Казалось бы, что альтернативы, такие как предложенные в выбранном ответе в этом вопросе, имели бы больше шансов создать неожиданное поведение, чем просто вложение якорей!

Также кажется, что overkill позволяет обработчикам событий onclick просто перенаправлять страницу в JS. Не говоря уже о том, что использование решения для скрипта может вызвать проблемы для пользователей, просмотр которых отключен.

РЕДАКТИРОВАТЬ

Интересно было то, что я работал над скрипкой, чтобы продемонстрировать, и я упустил из виду, что хром фактически реструктурировал DOM как таковой:

 

Я упустил это из виду, потому что видел, как работает зависание, и наводил указатель мыши на текст. Знание этого теперь не обязательно меняет мой вопрос, но он действительно иллюстрирует, что он даже не работает так, как я думал.

Имейте в виду, что якорь – это не просто ссылка, это также то, к чему можно связать. (Хотя прежнее использование гораздо более распространено, чем последнее.) Цитата W3C (старая, но релевантная):

Якорь – это fragment текста, который обозначает начало и / или конец гипертекстовой ссылки.

Для этого не думайте о якоре в качестве ссылки. Подумайте об этом как о пункте в документе, который соединяется с (и / или с) другой точкой (в том же документе или другом документе, это не имеет значения). Две точки в некотором нефизическом пространстве, которые связаны нефизическим streamом.

Учитывая, что якоря не должны содержать много контента. Если он содержит много контента, он перестает становиться «точкой» и начинает становиться «областью». Например, представьте себе якорь, который при визуализации занимает больше места, чем браузер может отображать сразу. Если что-то связывается с этим якорем, куда он должен идти? Начало? Средний? Конец? (Интуитивно вы можете подумать о начале, но у вас есть идея.)

Кроме того, якоря определенно не должны содержать других якорей. Нефизические связи между нефизическими точками могут стать двусмысленными. Подключается ли дочерний якорь к другой точке, или же ведущий якорь подключается к другой точке? Это, вероятно , не приводит к большому количеству сделок в большинстве случаев, поскольку подавляющее большинство якорей сегодня являются односторонними ссылками от якоря к другому документу. Но цель якоря – это не просто односторонняя ссылка на другой документ, поэтому определение продолжает воплощать эту цель.

Спецификация для имеет модель контента:

Прозрачный, но не должно быть streamового потомка интерактивного контента .

Таким образом, спецификация на самом деле сложнее, чем вы говорите. Это также относится к – по существу у вас не может быть рабочих ссылок внутри ссылок или кнопок внутри кнопок.

К сожалению, у меня нет четкого ответа на ваш вопрос, почему – я могу только догадываться. Одной из очевидных причин является неоднозначность, которую она вызывает (например, какой якорь следует соблюдать при нажатии на внутреннюю)?

Это создает не только функциональную двусмысленность, но и семантическую двусмысленность. Содержимое является меткой для его гиперссылки. Значит ли это, что внутренняя гиперссылка является частью метки для содержимого внешней ссылки?

Якорные вложения не рекомендуются стандартами (хотя все браузеры, которые я тестировал, похоже, приводят к самой внутренней цели клика) из-за двусмысленности.

Логично не сказать, что большая часть должна привести к определенной странице, и в этой части небольшая часть должна вести куда-то еще. Я все еще должен видеть какой-либо прецедент для такого поведения. С эволюцией доступных языков сценариев этот вид итераций или наследия может работать (события javascript click на divs для примера), но никогда не будет код, который хочет направить на определенный URL-адрес, а затем на другой (href для родительских якорей).

Изменить. Рассматривая вопрос, на который вы ссылаетесь, укладывание двух якорей, указывающих на то же самое href, совершенно бесполезно. Просто удалите вложенную, и все будет хорошо. Если это так, потому что вы сделали правило CSS, например aa{color:red;} используйте span! Или даже div с display:inline но, пожалуйста, довольно, пожалуйста, якорь должен куда-то идти, его нельзя использовать только для целей стилизации или чего-то еще.