Maintenant que tu maîtrises la base du CSS, on va ajouter de la vie à tes pages : effets au survol (hover), transitions fluides, petites animations.
:hover permet de changer le style d’un élément quand la souris passe dessus.
Très utilisé pour les liens, boutons, cartes, etc.
a {
color: #4f8bff;
}
a:hover {
color: #ff5c7a;
}
Exemple de bouton avec hover :
Je suis un bouton avec :hoverQue signifie .btn:hover en CSS ?
Sans transition, les changements CSS sont instantanés.
Avec transition, ils deviennent animés.
.carte {
background-color: #050814;
transform: scale(1);
transition: background-color 0.3s ease, transform 0.3s ease;
}
.carte:hover {
background-color: #4f8bff;
transform: scale(1.05);
}
transition: all 0.3s ease; pour animer toutes les propriétés modifiées,
mais il vaut mieux cibler seulement celles dont tu as besoin.
Où faut-il déclarer transition ?
Passe la souris sur la boîte pour voir la transition. Tu peux changer la durée et voir la différence.
La propriété transform permet de transformer un élément :
scale() : agrandir / réduiretranslateX(), translateY() : déplacerrotate() : tourner.carte:hover {
transform: translateY(-5px) scale(1.05);
}
Quelle fonction de transform sert à agrandir/réduire un élément ?
Pour créer une vraie animation (qui ne dépend pas du hover), on utilise
@keyframes + la propriété animation.
@keyframes clignote {
0% { opacity: 1; }
50% { opacity: 0.3; }
100% { opacity: 1; }
}
.alerte {
animation: clignote 1s infinite;
}
Exemple de bouton animé :
animation-name : nom de l’animation (clignote)animation-duration : durée d’un cycle (1s, 2s…)animation-iteration-count : nombre de répétitions (ou infinite)Quelle règle utilise-t-on pour définir les étapes d'une animation CSS ?
Crée une page effets.html + un fichier
effets.css avec :
:hover (couleur + légère transformation),hover : légère ombre et hausse,.btn-principal {
display: inline-block;
padding: 10px 18px;
border-radius: 999px;
background-color: #4f8bff;
color: #fff;
text-decoration: none;
transition: background-color 0.25s ease, transform 0.25s ease;
}
.btn-principal:hover {
background-color: #ff5c7a;
transform: translateY(-2px) scale(1.03);
}