Комментарии 19
Пример, чтобы расставить всё по своим местам
На макете отрисована фраза «Войти». Если клик по ней должен открывать окно для ввода регистрационных данных на этой же странице, это кнопка. Если при нажатии должна открываться отдельная страница для входа, это ссылка.
Давайте всё немного запутаем. Если по макету вход — в окне, которое открывается поверх страницы, а к примеру в письмах мы хотим давать прямую ссылку на вход, то логичным вариантом будет сделать «Войти» ссылкой, которая вместо перехода на новую страницу при помощи JS будет открывать окно входа. Итого получается, что это вполне может быть ссылка, при клике по которой открывается окно для ввода данных.
Кажется автор забыл упомянуть ещё про accessibility.
Изначально подразумевалось, что ссылка -- это ссылка на ресурс (сайт, страницу, якорь), а кнопка -- выполнение некоторого действия (отправка формы, открытие окна). Это было примерно тогда, когда создавался HTML.
Но эти понятия давно смешались из-за того, что броузеры не умели нормально стилизовать кнопки и обрабатывать события на них. Это было примерно тогда, когда создавался DHTML.
Поэтому пользователям сейчас абсолютно фиолетово, на кнопку жать или на ссылку. Им могло бы быть важно, будет ли результатом действия новая страница, или же они останутся в том же окне. Но это было раньше принято передавать через троеточие в конце кнопки ( открыть ... ) или ( открыть ), и давно вышло из употребления.
И теперь совершенно непонятно, зачем всегда "использовать правильно". Сейчас встречаются иногда даже забавные конструкции, где A служит оберткой вокруг BUTTON!!
Наоборот, можно было бы выкинуть тег A!Оставить только параметр onclick для любых элементов. Вместе с параметром rel это решило бы все возможные задачи по обработке кликов, что людьми, что поисковиками
Хорошая статья. Но исправьте, что :focus это не нажатие состояние, а выбранное через таб-навигацию. Нажатие состояние ссылки/кнопки — это :active.
Используйте ссылки и кнопки правильно. Пожалуйста