Атрибут Name устарел, каково правильное поведение при работе с якорями?


При тестировании моего кода с помощью валидатора html5 w3 я получаю следующее предупреждающее сообщение:

Предупреждение: Атрибут name устарел. Подумайте о том, чтобы вместо этого поместить атрибут id в ближайший контейнер.

Вопрос(ы):

  • Что означает ближайший контейнер?
  • Является ли пустой <a> теперь устаревшим?
  • Должен ли я использовать id вместо name?
Author: Kzqai, 2011-04-22

3 answers

[A] повторно пустые теги-заполнители в целом устарели, и якоря могут просто указывать на любой элемент с идентификатором вместо этого?

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

 9
Author: danlefree, 2011-04-22 20:00:47

Если вам нужно перейти по ссылкам на странице, также известным как идентификаторы фрагментов , вы можете установить атрибут 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, они не создают гиперссылки.

 17
Author: chharvey, 2017-05-23 12:37:07

Для HTML5 атрибут name теперь устарел, поэтому это означает использовать id вместо name. В противном случае все остальное остается тем же самым.

<a> не является устаревшим.

 2
Author: Sean Tank Garvey, 2017-07-14 00:43:06