Ипользование <div/> вместо <a/> для псевдоссылок?

Разработчики часто используют тэги <a/> для создания псевдоссылок (элементы для вызова выпадающих список, всплывающих окон и блоков, прочих интерактивных элементов).


В атрибуте href при этом может находится:
  • адрес страницы либо хэш, который позволит пользователю без javascript взимодействовать со страницей
  • вызов javascript функции
  • # либо javascript:void()



Вопрос в том — почему именно <a/>, а не <div/> со свойством cursor: pointer;.


Возможно есть какие либо причины, кроме заботы о поисковиках и пользователях с отключенным javascript?
  • Вопрос задан
  • 4634 просмотра
Пригласить эксперта
Ответы на вопрос 7
toptalo
@toptalo
undefined
Думаю дело в псевдоклассе :hover
В браузере Internet Explorer до версии 6.0 включительно псевдокласс :hover работает только для ссылок.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Думаю что смысл таится в семантике.
Ответ написан
@Amikko
почему именно <a/>

Тег a может принимать фокус ввода, на ссылку можно перейти по табу без использования мыши.
Ответ написан
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
А куда тогда тыкать поисковым роботам?
Ответ написан
@egorinsk
Среди разработчиков 95%, а то и больше, людей без высшего образования в области CS и веб-разработки, это школьники, прочитавшие «jQuery за 5 уроков» и побежавшие делать сайты. Естественно, вещей вроде W3C HTML Standart эта школота в глаза не видела, да и зачем, им и без этого неплохо платят.

Потому и лепят, убогие, как бог на душу положит.

Естественно, ставить все эти конструкции в href нельзя, и надо использовать span либо button для псевдоссылок. Логичнее button, так как псевдоссылка —это кнопка, но многие верстальщики (опять же, в глаза CSS Standart не видевшие) не в силах заверстать button, потому можно и span'ом сделать.
Ответ написан
skorney
@skorney
Если место важное, то даже с отключенным js нужно чтобы пользователь все-таки увидел содержимое (перешел по ссылке)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы