Czy można używać tagu zakotwiczenia bez dołączania href
atrybutu i zamiast tego używać procedury obsługi zdarzenia kliknięcia JavaScript? Pominąłbym więc href
całkowicie, nawet nie mając go pustym ( href=""
).
Czy można używać tagu zakotwiczenia bez dołączania href
atrybutu i zamiast tego używać procedury obsługi zdarzenia kliknięcia JavaScript? Pominąłbym więc href
całkowicie, nawet nie mając go pustym ( href=""
).
Odpowiedzi:
W HTML5 poprawne jest użycie a
elementu bez href
atrybutu. Jest uważany za „zastępczy hiperłącze”.
Przykład:
<a>previous</a>
Poszukaj „zastępczego hiperłącza” na stronie odniesienia tagu kotwicy w3c: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
I jest również wspomniany na wiki tutaj: https://www.w3.org/wiki/Elements/a
Łącze zastępcze jest przeznaczone dla przypadków, w których chcesz użyć elementu kotwicy, ale nie możesz go nigdzie nawigować. Jest to przydatne do oznaczania bieżącej strony w menu nawigacyjnym lub ścieżce nawigacyjnej. (Stare podejście polegałoby na użyciu tagu rozpiętości lub tagu zakotwiczenia z klasą o nazwie „aktywna” lub „bieżąca”, aby nadać mu styl, oraz JavaScript, aby anulować nawigację).
Łącznik zastępczy jest również przydatny w przypadkach, gdy chcesz dynamicznie ustawić miejsce docelowe łącza za pomocą JavaScript w czasie wykonywania. Po prostu ustawiasz wartość atrybutu href, a tag kotwicy staje się klikalny.
Zobacz też:
href
cursor: pointer
Jest OK, ale jednocześnie może powodować spowolnienie niektórych przeglądarek.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Moja rada to skorzystanie z <a href="#"> </a>
Jeśli używasz JQuery, pamiętaj, aby również użyć:
.click(function(event){
event.preventDefault();
// Click code here...
});
Krótka odpowiedź: nie
Długa odpowiedź:
Po pierwsze, bez atrybutu href nie będzie to link. Jeśli nie jest to link, nie będzie on dostępny dla klawiatury (lub przełącznika oddechu lub innego urządzenia wejściowego nie opartego na wskaźnikach) (chyba że użyjesz funkcji HTML 5, tabindex
których nie są powszechnie obsługiwane). Bardzo rzadko zdarza się, że formant nie ma dostępu do klawiatury.
Druga. Powinieneś mieć alternatywę dla, gdy JavaScript nie działa (ponieważ ładowanie z serwera było wolne, połączenie internetowe zostało przerwane (np. Sygnał mobilny w jadącym pociągu), JS jest wyłączony itp.).
Skorzystaj z progresywnego ulepszania dzięki dyskretnemu JS.
href
był obowiązkowy (chyba że był to nazwany kotwica, w którym to przypadku tabindex nie miał sensu). Zastosowanie tabindex
dodawania nieusuwalnych elementów do kolejności tabulatorów jest nową innowacją w HTML 5.
a
tag bez href
atrybutu.
Znacznika można używać bez atrybutu href. W przeciwieństwie do wielu odpowiedzi tutaj, istnieją tak naprawdę standardowe powody, dla których należy utworzyć kotwicę, gdy nie ma href. Semantycznie „a” oznacza kotwicę lub link. Jeśli użyjesz go do czegokolwiek zgodnego z tym znaczeniem, nic ci nie będzie.
Jednym standardowym zastosowaniem znacznika bez hrefa jest tworzenie nazwanych łączy. Pozwala to na użycie kotwicy o nazwie name = blah, a później można utworzyć kotwicę za pomocą href = # blah, aby połączyć się z nazwaną sekcją bieżącej strony. Zostało to jednak przestarzałe, ponieważ można również używać identyfikatorów w ten sam sposób. Jako przykład możesz użyć tagu nagłówka o id = nagłówek, a później możesz mieć kotwicę wskazującą na href = # nagłówek.
Nie chcę jednak sugerować używania właściwości name. Podaj tylko jeden przypadek użycia, w którym nie potrzebujesz href, i dlatego uzasadnij, dlaczego nie jest wymagany.
href
atrybut <a>
elementu, który jest używany jako element interaktywny (tj. Link). Jak wspomniałeś, bez href
atrybutu nie jest to po prostu ... nie link, tylko kotwica, co jest zupełnie inną rzeczą.
Z punktu widzenia dostępności <a>
bez hrefa nie można tabulować, wszystkie linki powinny mieć tabulację, więc dodaj tabindex = „0”, jeśli nie masz href.
<a>
Tag bez „href” może być przydatny podczas korzystania z menu wielopoziomowych i trzeba rozszerzyć na następny poziom, ale nie chce, że etykieta menu, aby być aktywnym ogniwem. Nigdy nie miałem żadnych problemów z używaniem go w ten sposób.
W niektórych przeglądarkach napotkasz problemy, jeśli nie podasz atrybutu href. Sugeruję napisanie kodu w taki sposób:
<a href="#" onclick="yourcode();return false;">Link</a>
możesz zastąpić swój kod () własną funkcją lub logiką, ale pamiętaj, aby dodać return false; oświadczenie na końcu.
#
na stronie indeksu. W przypadku niektórych linków na pasku nawigacyjnym nie chcę uruchamiać trasy, do #
której tak się dzieje, jeśli korzystasz a href="#"
z niej samodzielnie. Użycie <a href="#" onclick="return false;"
powoduje zatrzymanie wyzwalanej trasy, ale zdarzenie click nadal przenika do mojego modułu obsługi (który korzysta ze zdarzeń DOM przechwyconych przez jQuery i Backbone.Radio). Dzięki @ shashwat13 :)