Википедия интенсивно использует эту функцию, например:
<a href="#History">[...]</a>
<span class="mw-headline" id="History">History</span>
И Википедия работает для всех, поэтому я чувствую себя в безопасности, придерживаясь этой формы.
Также не забывайте, что вы можете использовать это не только для span, но и для div или даже ячеек таблицы, и тогда у вас есть доступ к псевдоклассу: target в элементе. Просто следите за тем, чтобы не изменять ширину, как жирным шрифтом, потому что содержимое перемещается, что мешает.
Именованные якоря - мой голос, чтобы избежать:
- «Имена и идентификаторы находятся в одном и том же пространстве имен ...» - Два атрибута с одним и тем же пространством имен просто сумасшедшие. Скажем так, устарела уже.
- «Якорные элементы без атрибута href» - опять же, природа элемента (гиперссылка или нет) определяется наличием атрибута ?! Двойной сумасшедший. Здравый смысл говорит, чтобы вообще этого избежать.
- Если вы когда-либо стилизуете якорь без псевдокласса, стили будут применяться к каждому. В CSS3 вы можете обойти это с помощью селекторов атрибутов (или одинакового стиля для каждого псевдокласса), но все же это обходной путь. Обычно это не подходит, потому что вы выбираете цвета для псевдокласса, и подчеркивание, присутствующее по умолчанию, имеет смысл только удалить, что делает его таким же, как и другой текст. Но вы когда-нибудь решите сделать ссылки жирными, это вызовет проблемы.
- Netscape 4 может не поддерживать функцию id, но неизвестный атрибут не вызовет никаких проблем. Это то, что называется совместимостью для меня.
http://example.com#foo
(поэтому без / перед #)