У элемента
<a> есть несколько особенностей, связанных с атрибутом href. Они помогают в некоторых ситуациях обойтись без JS и решить задачу нативным способом. Джим Нильсен поделился этими особенностями.-
<a href="#"> — прокручивает страницу к верхней части, что можно использовать для создания плавающей кнопки «наверх»;-
<a href="#top"> — так же прокручивает страницу к верхней части, если нет элементов с id="top";-
<a href="doc.pdf#page42"> — при просмотре PDF через браузер открывает 42-ю страницу, если она есть;-
<a href=""> — перезагружает текущую страницу, сохраняя параметры, но удаляя идентификатор фрагмента (example.com?foo=bar#baz →example.com?foo=bar);-
<a href="."> — перезагружает страницу, удаляя параметры и идентификатор фрагмента, но нужно помнить про слэш в конце пути (example.com?foo=bar#baz →example.com);-
<a href="?"> — перезагружает страницу, удаляя параметры и идентификатор фрагмента, но оставляет символ ? (example.com?foo=bar#baz →example.com?);-
<a href="data:text/plain,Hello"> — перенаправляет на страницу с текстом Hello или другими данными в зависимости от указанного типа. Можно использовать для встраивания небольшого объёма данных;-
<a href="video.mp4#t=10,20"> — при обращении к аудио или видео через браузер, перематывает плеер на 10-ю секунду и останавливает воспроизведение на 20-й секунде;-
<a href="#:~:text=foo"> — перенаправляет на страницу, прокручивает к первому вхождению текста foo и подсвечивает его.Также не стоит забывать о схемах, которые можно использовать в
href: tel:, mailto:, sms:, javascript: и пользовательских обработчиках схем, создаваемых через registerProtocolHandler().#html