Чи добре використовувати тег прив’язки, не включаючи href
атрибут, а замість цього використовувати обробник подій JavaScript натисканням? Тож я б пропустив href
повністю, навіть не пустуючи ( href=""
).
Чи добре використовувати тег прив’язки, не включаючи href
атрибут, а замість цього використовувати обробник подій JavaScript натисканням? Тож я б пропустив href
повністю, навіть не пустуючи ( href=""
).
Відповіді:
У HTML5 правильне використання a
елемента без href
атрибута. Він вважається "гіперпосиланням на заповнення місця".
Приклад:
<a>previous</a>
Шукайте "гіперпосилання заповнювача" на довідковій сторінці тегів прив’язки w3c: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
І це також згадується у вікі тут: https://www.w3.org/wiki/Elements/a
Посилання на заповнення заповнення - це для випадків, коли ви хочете використовувати якірний елемент, але не маєте його пересуватися кудись. Це стане в нагоді для розмітки поточної сторінки в навігаційному меню або стежці. (Старим підходом було б використовувати тег span або тег прив’язки з класом, який називається "active", або "current" для його стилю та JavaScript для скасування навігації.)
Посилання на заповнювач місця також корисна у випадках, коли ви хочете динамічно встановити призначення посилання через JavaScript під час виконання. Ви просто встановите значення атрибута href, і тег прив’язки стає доступним для натискання.
Дивитися також:
href
cursor: pointer
Це нормально, але в той же час деякі веб-переглядачі можуть стати повільними.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Моя порада - використовувати <a href="#"> </a>
Якщо ви використовуєте JQuery, не забудьте також використовувати:
.click(function(event){
event.preventDefault();
// Click code here...
});
Коротка відповідь: Ні.
Довга відповідь:
По-перше, без атрибута href це не буде посиланням. Якщо це не посилання, то воно не буде доступним для клавіатури (або дихального перемикача чи іншого іншого пристрою введення, що не базується на покажчику) (якщо ви не використовуєте HTML 5, функції tabindex
яких не підтримуються повсюдно). Дуже рідко трапляється, щоб управління не мала доступу до клавіатури.
Друге. У вас повинна бути альтернатива, коли JavaScript не запускається (оскільки повільно завантажувався з сервера, перервано інтернет-з'єднання (наприклад, мобільний сигнал у рухомому поїзді), JS вимкнено, тощо, тощо).
Скористатися прогресивного поліпшення з допомогою ненав'язливих JS.
href
було обов'язково (якщо тільки це не названий якор, в такому випадку tabindex не мав сенсу). Використання tabindex
для додавання нефокусованих елементів до порядку вкладки - це нова інновація в HTML 5.
a
тег без href
атрибута.
Якщо вам доведеться використовувати href для зворотної сумісності, ви також можете використовувати
<a href="javascript:void(0)">link</a>
замість #, якщо ви не хочете використовувати атрибут
Тег прекрасно використовувати без атрибута href. Всупереч багатьом відповідям тут є фактично стандартні причини створення якоря, коли немає href. Семантично "а" означає якір або ланку. Якщо ви використовуєте його для чогось, що слідує за цим значенням, то у вас все добре.
Одне стандартне використання тегу без href - це створення поіменних посилань. Це дозволяє використовувати якір з ім'ям = blah, а згодом ви можете створити прив’язку з href = # blah для посилання на названий розділ поточної сторінки. Однак це застаріло, оскільки ви також можете використовувати ідентифікатори таким же чином. Як приклад, ви можете використовувати тег заголовка з id = заголовок, а пізніше ви можете мати якір, що вказує на href = # заголовок.
Моя думка, однак, не в тому, щоб пропонувати використовувати властивість імені. Лише надати один випадок використання, коли вам не потрібен href, а тому міркування, чому він не потрібен.
href
атрибут для <a>
елемента , який використовується як інтерактивний елемент (тобто посилання). Як ви зазначаєте, без href
атрибуту це просто просто ... не посилання, а лише якір, що зовсім інша річ.
З точки зору доступності <a>
без href не вдається вкладки, всі посилання повинні бути в змозі вкладки, тому додайте tabindex = '0 ", якщо у вас немає href.
<a>
Тег без «HREF» може бути зручно при використанні меню багаторівневого і вам потрібно розширити на наступний рівень , але не хочете , щоб ярлик меню , щоб бути активною ланкою. У мене жодного разу не виникало жодних проблем із його використанням.
У деяких браузерах ви зіткнетеся з проблемами, якщо вам не нададуть атрибут href. Я пропоную вам написати свій код приблизно так:
<a href="#" onclick="yourcode();return false;">Link</a>
ви можете замінити код () на власну функцію чи логіку, але пам’ятайте, що потрібно вказати false false; заява в кінці.
#
для сторінки покажчика. Для деяких моїх посилань на навигації я не хочу запускати маршрут, до #
якого трапляється, якщо ви використовуєте a href="#"
його сам. Використання <a href="#" onclick="return false;"
зупиняє спрацьовування маршруту, але подія натискання все ще переходить на мій обробник (який використовує події DOM, підключені через jQuery та Backbone.Radio). Дякую @ shashwat13 :)