Должен ли я сделать HTML-якоря с именем или идентификатором? - PullRequest
751 голосов
/ 27 января 2009

Когда кто-то хочет обратиться к какой-либо части веб-страницы методом "http://example.com/#foo", следует ли использовать

<h1><a name="foo"/>Foo Title</h1>

или

<h1 id="foo">Foo Title</h1>

Они оба работают, но равны ли они или имеют семантические различия?

Ответы [ 14 ]

1 голос
/ 25 июня 2017

В html 5 атрибут id="" определяет уникальный идентификатор для элемента, который также является якорем для ссылки фрагмента. В предыдущих стандартах html атрибут name="" элемента <a> определяет привязку для ссылки фрагмента. Я рекомендую что-то вроде:
<a name="foo" id="foo"></a><h1>Foo Title</h1>
Поскольку поддержка атрибута id="" немного затруднена (хотя последние выпуски всех основных браузеров поддерживают его, выпуски не старше нескольких лет [И лучше не ломать что-либо, если есть) не является хорошей причиной для]). Он совместим и не стилизует то, что находится в элементе link'd, поскольку закрывающий все еще находится за пределами элемента, но он по-прежнему действует во всех действующих стандартах.

Убедитесь, что атрибуты name="" и id="" элемента <a> совпадают.

1 голос
/ 27 января 2009

Во втором примере присваивается уникальный идентификатор рассматриваемому элементу. Этот элемент может быть затем обработан или доступен с помощью DHTML.

Первый, с другой стороны, устанавливает именованное местоположение в документе, похожее на закладку. Прикрепленный к «якору», он имеет смысл.

0 голосов
/ 20 июня 2013

Как насчет использования атрибута name для старых браузеров и атрибута id для новых браузеров. Будут использованы обе опции, и по умолчанию будет реализован запасной метод !!!

0 голосов
/ 27 января 2009

Вся концепция «именованного якоря» использует атрибут name по определению. Вы должны просто использовать имя, но атрибут ID может быть полезен для некоторых ситуаций с JavaScript.

Как и в комментариях, вы всегда можете использовать оба для хеджирования ваших ставок.

...