¿Está bien usar una etiqueta de anclaje sin incluir el href
atributo y, en su lugar, usar un controlador de eventos de clic de JavaScript? Así que omitiría por href
completo, ni siquiera lo tendría vacío ( href=""
).
¿Está bien usar una etiqueta de anclaje sin incluir el href
atributo y, en su lugar, usar un controlador de eventos de clic de JavaScript? Así que omitiría por href
completo, ni siquiera lo tendría vacío ( href=""
).
Respuestas:
En HTML5, el uso de un a
elemento sin un href
atributo es válido. Se considera un "hipervínculo de marcador de posición".
Ejemplo:
<a>previous</a>
Busque el "hipervínculo de marcador de posición" en la página de referencia de la etiqueta de anclaje w3c: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
Y también se menciona en la wiki aquí: https://www.w3.org/wiki/Elements/a
Un enlace de marcador de posición es para casos en los que desea utilizar un elemento de anclaje, pero no hacer que navegue a ningún lado. Esto es útil para marcar la página actual en un menú de navegación o ruta de navegación. (El enfoque anterior hubiera sido usar una etiqueta de extensión o una etiqueta de anclaje con una clase llamada "activa" o "actual" para darle estilo y JavaScript para cancelar la navegación).
Un enlace de marcador de posición también es útil en los casos en que desea establecer dinámicamente el destino del enlace a través de JavaScript en tiempo de ejecución. Simplemente establece el valor del atributo href y la etiqueta de anclaje se puede hacer clic.
Ver también:
href
el cursor: pointer
estilo no se añadirá automáticamente al elemento.
Está bien, pero al mismo tiempo puede hacer que algunos navegadores se vuelvan lentos.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Mi consejo es usar <a href="#"> </a>
Si está utilizando JQuery, recuerde usar también:
.click(function(event){
event.preventDefault();
// Click code here...
});
Respuesta corta: no.
Respuesta larga:
Primero, sin un atributo href, no será un enlace. Si no es un enlace, entonces no será accesible el teclado (o el interruptor de respiración, u otro dispositivo de entrada no basado en puntero) (a menos que use características HTML 5 de las tabindex
cuales no son compatibles universalmente). Es muy raro que sea apropiado que un control no tenga acceso al teclado.
Segundo. Debería tener una alternativa para cuando el JavaScript no se ejecuta (debido a que la carga del servidor fue lenta, se cortó la conexión a Internet (por ejemplo, señal móvil en un tren en movimiento), JS está apagado, etc., etc.).
Utilice la mejora progresiva de JS discreto.
href
era obligatorio (a menos que fuera un ancla con nombre en cuyo caso tabindex no tenía sentido). El uso de tabindex
agregar elementos desenfocables al orden de tabulación es una nueva innovación en HTML 5.
a
etiqueta sin un href
atributo.
Si tiene que usar href para la compatibilidad con versiones anteriores, también puede usar
<a href="javascript:void(0)">link</a>
en lugar de #, si no quieres usar el atributo
La etiqueta está bien para usar sin un atributo href. Contrariamente a muchas de las respuestas aquí, en realidad hay razones estándar para crear un ancla cuando no hay href. Semánticamente, "a" significa un ancla o un enlace. Si lo usas para cualquier cosa que siga ese significado, entonces estás bien.
Un uso estándar de la etiqueta a sin href es crear enlaces con nombre. Esto le permite usar un ancla con name = blah y luego puede crear un ancla con href = # blah para vincular a la sección con nombre de la página actual. Sin embargo, esto ha quedado en desuso porque también puede usar ID de la misma manera. Como ejemplo, podría usar una etiqueta de encabezado con id = header y luego podría tener un ancla que apunta a href = # header.
Mi punto, sin embargo, no es sugerir el uso de la propiedad de nombre. Solo para proporcionar un caso de uso donde no necesita un href y, por lo tanto, razona por qué no es necesario.
href
atributo de un <a>
elemento que se está utilizando como elemento interactivo (es decir, un enlace). Como mencionas, sin un href
atributo es simplemente ... no un enlace, solo un ancla, que es algo completamente diferente.
Desde una perspectiva de accesibilidad <a>
sin href no se pueden tabular, todos los enlaces deben poder tabularse, así que agregue un tabindex = '0 "si no tiene un href.
La <a>
etiqueta sin el "href" puede ser útil cuando se utilizan menús de varios niveles y necesita expandir el siguiente nivel, pero no desea que la etiqueta del menú sea un enlace activo. Nunca he tenido ningún problema al usarlo de esa manera.
En algunos navegadores, tendrá problemas si no está dando un atributo href. Le sugiero que escriba su código más o menos así:
<a href="#" onclick="yourcode();return false;">Link</a>
puede reemplazar yourcode () con su propia función o lógica, pero recuerde agregar return false; declaración al final.
#
para la página de índice. Para algunos de mis enlaces de barra de navegación, no quiero activar una ruta a la #
que es lo que sucede si lo usa a href="#"
solo. El uso <a href="#" onclick="return false;"
detiene la ruta que se desencadena, pero el evento de clic todavía aparece en mi controlador (que usa eventos DOM conectados a través de jQuery y Backbone.Radio). Gracias @ shashwat13 :)