É bom usar uma marca de âncora sem incluir o href
atributo e, em vez disso, usar um manipulador de eventos de clique em JavaScript? Então, eu omitiria href
completamente, nem sequer o vazio ( href=""
).
É bom usar uma marca de âncora sem incluir o href
atributo e, em vez disso, usar um manipulador de eventos de clique em JavaScript? Então, eu omitiria href
completamente, nem sequer o vazio ( href=""
).
Respostas:
No HTML5, o uso de um a
elemento sem um href
atributo é válido. É considerado um "hiperlink de espaço reservado".
Exemplo:
<a>previous</a>
Procure por "hiperlink de marcador de posição" na página de referência da marca de âncora do w3c: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
E também é mencionado no wiki aqui: https://www.w3.org/wiki/Elements/a
Um link de espaço reservado é para casos em que você deseja usar um elemento âncora, mas não precisa navegar em nenhum lugar. Isso é útil para marcar a página atual em um menu de navegação ou trilha de navegação. (A abordagem antiga seria usar uma tag de extensão ou uma tag de âncora com uma classe chamada "ativo" ou "atual" para estilizá-la e JavaScript para cancelar a navegação.)
Um link de espaço reservado também é útil nos casos em que você deseja definir dinamicamente o destino do link via JavaScript no tempo de execução. Você simplesmente define o valor do atributo href e a tag anchor se torna clicável.
Veja também:
href
o cursor: pointer
estilo não será adicionado automaticamente ao elemento.
Está tudo bem, mas ao mesmo tempo pode fazer com que alguns navegadores fiquem lentos.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Meu conselho é usar <a href="#"> </a>
Se você estiver usando o JQuery, lembre-se de usar também:
.click(function(event){
event.preventDefault();
// Click code here...
});
Resposta curta: Não.
Resposta longa:
Primeiro, sem um atributo href, não será um link. Se não for um link, o teclado (ou o interruptor de respiração ou outro dispositivo de entrada não baseado em ponteiro) estará acessível (a menos que você use os recursos HTML 5 dos tabindex
quais não são universalmente suportados). É muito raro que seja apropriado que um controle não tenha acesso ao teclado.
Segundo. Você deve ter uma alternativa para quando o JavaScript não for executado (porque o carregamento foi lento no servidor, uma conexão com a Internet foi interrompida (por exemplo, sinal de celular em um trem em movimento), o JS está desativado etc.).
Faça uso do aprimoramento progressivo por JS discreto.
href
era obrigatório (a menos que fosse uma âncora nomeada, caso em que o tabindex não fazia sentido). O uso de tabindex
adicionar elementos unfocusable para a ordem de tabulação é uma inovação em HTML 5.
a
tag sem um href
atributo.
Se você precisar usar o href para obter compatibilidade com versões anteriores, também poderá usar
<a href="javascript:void(0)">link</a>
em vez de #, se você não quiser usar o atributo
A tag é boa para usar sem um atributo href. Ao contrário de muitas das respostas aqui, existem realmente razões padrão para criar uma âncora quando não há href. Semanticamente, "a" significa uma âncora ou um link. Se você usá-lo para algo que segue esse significado, então você está bem.
Um uso padrão da tag a sem href é criar links nomeados. Isso permite que você use uma âncora com nome = blá e, posteriormente, você pode criar uma âncora com href = # blá para vincular à seção nomeada da página atual. No entanto, isso foi preterido porque você também pode usar IDs da mesma maneira. Como exemplo, você pode usar uma tag de cabeçalho com id = header e mais tarde poderá ter uma âncora apontando para href = # header.
Meu argumento, no entanto, não é sugerir o uso da propriedade name. Apenas para fornecer um caso de uso em que você não precisa de um href e, portanto, raciocinar por que ele não é necessário.
href
atributo de um <a>
elemento que está sendo usado como elemento interativo (ou seja, um link). Como você mencionou, sem um href
atributo, é simplesmente ... não um link, apenas uma âncora, que é uma coisa completamente diferente.
De uma perspectiva de acessibilidade <a>
sem um href não é possível tabular, todos os links devem poder tabular; portanto, adicione um tabindex = '0 "se você não tiver um href.
A <a>
tag sem o "href" pode ser útil ao usar menus de vários níveis e você precisa expandir o próximo nível, mas não deseja que esse rótulo de menu seja um link ativo. Nunca tive problemas ao usá-lo dessa maneira.
Em alguns navegadores, você enfrentará problemas se não estiver atribuindo um atributo href. Eu sugiro que você escreva seu código algo como isto:
<a href="#" onclick="yourcode();return false;">Link</a>
você pode substituir seu código () por sua própria função ou lógica, mas lembre-se de adicionar return false; declaração no final.
#
para a página de índice. Para alguns dos meus links da barra de navegação, não quero acionar uma rota à #
qual é o que acontece se você usar a href="#"
por si só. O uso <a href="#" onclick="return false;"
impede que a rota seja acionada, mas o evento click ainda borbulha no meu manipulador (que usa eventos DOM conectados por jQuery e Backbone.Radio). Obrigado @ shashwat13 :)