comment définir le style du curseur sur le pointeur pour les liens sans hrefs


135

J'ai beaucoup de <a>balises html sans l' hrefattribut pour faire des onclickappels javascript. Ces liens n'ont pas de style pointeur de curseur. Ils ont un curseur de style de texte.

Comment puis-je définir le style du curseur comme pointeur pour les liens sans utiliser le href attribut?

Je sais que je peux ajouter href = "#". Je l'ai à de nombreux endroits dans le document html et j'aimerais savoir comment créer un pointeur de style curseur pour les liens sans utiliser l' hrefattribut.


Au fait, quand vous dites lien, voulez-vous dire "<a id="do_some_javascript"> test </a>"? Ou est-ce juste une balise span ou div qui fait du javascript?
Alxandr

Réponses:


211

dans votre fichier css, ajoutez ceci ...

a:hover {
 cursor:pointer;
}

si vous n'avez pas de fichier css, ajoutez-le à la tête de votre page HTML

<style type="text/css">
 a:hover {
  cursor:pointer;
 }
</style>

vous pouvez également utiliser l'attribut href = "" en renvoyant false à la fin de votre javascript.

<a href="" onclick="doSomething(); return false;">a link</a>

c'est bon pour de nombreuses raisons. SEO ou si les gens n'ont pas de javascript, le href = "" fonctionnera. par exemple

<a href="nojavascriptpage.html" onclick="doSomething(); return false;">a link</a>

@voir http://www.alistapart.com/articles/behavioralseparation

Edit: Il convient de noter la réponse de @ BalusC où il mentionne que ce :hovern'est pas nécessaire pour le cas d'utilisation de l'OP. Bien que d'autres styles puissent être ajoutés avec le :hoversélecteur.


5
L'utilisation de: hover n'est pas nécessaire et il n'est pas garanti de fonctionner sur des liens sans href.
Alxandr

je ne peux pas imaginer où cela ne fonctionnerait pas. c'est un bon moyen d'apprendre, vous voudrez peut-être avoir d'autres comportements d'ajout similaires aux liens avec un attribut href: un changement d'arrière-plan, un soulignement, une couleur, et al.
Ross

1
Cela fait un moment que je n'ai pas utilisé cela, mais pour <IE6, il pourrait être utile d'ajouter un commentaire conditionnel pour créer un lien vers les styles mettant en vedettecursor: hand;
David dit de réintégrer Monica

Vous n'avez pas besoin de commentaire conditionnel - faites simplement .myStyle {curseur: main; curseur: pointeur;} - les nouveaux navigateurs ignoreront l'attribut hand puisqu'ils ne le comprennent pas de toute façon. Aussi IE6 comprendra toujours le pointeur - la main est pour ie5 et ci-dessous.
easwee

L'utilisation d'un a en soi peut cependant causer des problèmes. Surtout dans IE car ils déclenchent OnBeforeUnload même si vous ajoutez return false; Même un lien vers javascript: void (0); provoque l'appel d'OnBeforeUnload. J'ai eu un gros mal de tête avec ce problème au travail ...
Alxandr

16

Ajoutez simplement ceci à votre style CSS global:

a { cursor: pointer; }

De cette façon, vous ne dépendez plus du style de curseur par défaut du navigateur.


Ça ne marche pas. Le curseur est changé au textlieu de pointerChrome.
ZhekaKozlov


6

Voici comment changer le curseur d'une flèche à une main lorsque vous objectsurvolez un (myObject) donné.

myObject.style.cursor = 'pointer';

1
Tout d'abord, bienvenue à SO, Lou! Lorsque vous postez / répondez, assurez-vous d'être aussi informatif que possible et n'oubliez pas de formater vos exemples de code (comme je l'ai fait pour vous).
Brian

4

Donnez-leur à tous une classe commune (par exemple un lien). Ajoutez ensuite le fichier css:

.link { cursor: pointer; }

Ou comme @mxmissile l'a suggéré, faites-le en ligne avec style = "cursor: pointer;"


4

créez une classe avec le CSS suivant et ajoutez-la à vos balises avec les événements onclick:

cursor:pointer;

3

Utilisez CSS cursor: pointersi je me souviens bien.

Soit dans votre fichier CSS:

.link_cursor
{
    cursor: pointer;
}

Ensuite, ajoutez simplement le code HTML suivant à tous les éléments que vous souhaitez avoir le curseur de lien: class="link_cursor"(la méthode préférée.)

Ou utilisez le CSS en ligne:

<a style="cursor: pointer;">

1

Version angulaire:

<a (click)="action(); $event.preventDefault()" href="#">Action</a>

0

Cela a fonctionné pour moi:

<a onClick={this.openPopupbox} style={{cursor: 'pointer'}}>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.