Est-il possible d'ajouter une nouvelle classe CSS à un élément sur :hover
?
Comme pour jQuery, mais traduit en CSS:
$(element).addClass('someclass');
Réponse courte non :)
Mais vous pouvez simplement utiliser le même CSS pour le survol comme ceci:
a:hover, .hoverclass {
background:red;
}
Peut-être que si vous expliquez pourquoi vous avez besoin d'ajouter la classe, il y aura peut-être une meilleure solution?
Puisque tout le monde vous a fourni des réponses jQuery/JS, je vous proposerai une solution supplémentaire. La réponse à votre question est toujours non, mais en utilisant LESS (un pré-processeur CSS), vous pouvez le faire facilement.
.first-class {
background-color: yellow;
}
.second-class:hover {
.first-class;
}
Tout simplement, chaque fois que vous passez la souris sur .second-class
, toutes les propriétés de .first-class
lui seront attribuées. Notez qu’il n’ajoutera pas la classe de manière permanente, mais uniquement en survol. Vous pouvez en apprendre plus sur LESS ici: Premiers pas avec LESS
Voici une façon de faire le SASS:
.first-class {
background-color: yellow;
}
.second-class {
&:hover {
@extend .first-class;
}
}
CSS n'a vraiment pas la capacité de modifier un objet de la même manière que JavaScript, donc en bref - non.
:hover
est une pseudo-classe, vous pouvez donc y mettre vos déclarations CSS:
a:hover {
color: #f00;
}
Vous pouvez également utiliser une liste de sélecteurs pour appliquer des déclarations CSS à un élément survolé ou à un élément d'une classe donnée:
.some-class,
a:hover {
color: #f00;
}
pourquoi @Marco Berrocl reçoit un retour négatif et que sa réponse est tout à fait juste .__ Qu'en est-il de l'utilisation d'une bibliothèque pour créer une animation; .
donc je pense que survol pas la réponse et il devrait utiliser jquery ou javascript dans de nombreux cas
Voici comment vous le faites:
var e = document.getElementById('myIdName');
var value = window.getComputedStyle(e, null).getPropertyValue("zIndex");
alert('z-index: ' + value);