Атрибут Name устарел, каково правильное поведение при работе с якорями?
При тестировании моего кода с помощью валидатора html5 w3 я получаю следующее предупреждающее сообщение:
Предупреждение: Атрибут
name
устарел. Подумайте о том, чтобы вместо этого поместить атрибутid
в ближайший контейнер.
Вопрос(ы):
- Что означает ближайший контейнер?
- Является ли пустой
<a>
теперь устаревшим? - Должен ли я использовать
id
вместоname
?
3 answers
[A] повторно пустые теги-заполнители в целом устарели, и якоря могут просто указывать на любой элемент с идентификатором вместо этого?
Я предпочитаю переключать пользователей на теги заголовков (следуя поведению MediaWiki по умолчанию), где требуются ссылки на странице, но да, вы можете указать идентификатор любого элемента.
Если вам нужно перейти по ссылкам на странице, также известным как идентификаторы фрагментов , вы можете установить атрибут id
(который используется не только для идентификаторов фрагментов ) на любом элементе . Затем используйте обычный #
в URL-адресе атрибута href
элемента a
. Вот пример:
<body>
<p>Despite the many
<a href="#benefits-of-gum-chewing">benefits</a>
you may experience while chewing gum, there are also many drawbacks,
especially with
<a href="http://www.example.org/sugar.html#cons">non-sugarless</a>
gum.</p>
...
<section id="benefits-of-gum-chewing">
<h1>Benefits of Gum Chewing</h1>
...
</section>
</body>
При написании собственных страниц мне нравится присваивать id
каждому тегу <section>
(HTML5), даже если я не планирую его использовать. Значение id
является удобным для URL-адреса версия содержания его заголовка. Вы можете добиться того же эффекта, присвоив один и тот же id
<h1>
и т.д.
Наконец, пустые теги <a>
не являются устаревшими, как указано в спецификации HTML5:
Если элемент
a
не имеет атрибутаhref
, то элемент представляет собой заполнитель для места, где в противном случае могла бы быть размещена ссылка...
Кроме того, то же самое относится и к area
элементы:
href
атрибут для элементовa
иarea
не требуется; если у этих элементов нет атрибутовhref
, они не создают гиперссылки.
Для HTML5 атрибут name
теперь устарел, поэтому это означает использовать id
вместо name
. В противном случае все остальное остается тем же самым.
<a>
не является устаревшим.