Oggi parliamo di una delle animazioni più belle e semplici da implementare: l’effetto hover con HTML e CSS. Con questo approccio, possiamo creare animazioni fluide e visivamente accattivanti senza una sola riga di JavaScript. L’effetto hover aiuta a dare vita a un sito web, migliorando l’esperienza utente e rendendo l’interazione più interessante. In questa guida, ti mostrerò come replicare un fantastico effetto hover utilizzando solamente HTML e CSS.
Struttura HTML di Base
La struttura HTML per questo effetto hover è piuttosto semplice. Consiste in una serie di elementi div
che rappresentano delle “card” con un’immagine e una descrizione. Ogni card ha un’immagine e un contenuto descrittivo che si anima quando l’utente vi passa sopra.
Ecco il codice HTML che useremo:
<div class="container">
<div class="box">
<div class="imgBox">
<img src="logo_black.jpg" alt="Logo in Black">
</div>
<div class="content">
<h2>CyberAlchimista<br><span>Graphic Designer</span></h2>
</div>
</div>
<div class="box">
<div class="imgBox">
<img src="logo_color.jpg" alt="Logo in Color">
</div>
<div class="content">
<h2>CyberAlchimista<br><span>Web Developer</span></h2>
</div>
</div>
<div class="box">
<div class="imgBox">
<img src="logo_white.jpg" alt="Logo in White">
</div>
<div class="content">
<h2>CyberAlchimista<br><span>UX / UI Designer</span></h2>
</div>
</div>
</div>
- Container: Contiene tutte le “box” (card).
- Box: Rappresenta ogni card.
- imgBox: Contiene l’immagine di ciascuna card.
- Content: Contiene il testo descrittivo per ogni card.
Stile CSS e Animazione Hover
Per rendere l’effetto hover funzionale e visivamente interessante, dobbiamo aggiungere del CSS per gestire le animazioni e le transizioni. Lo stile CSS crea un effetto di movimento dove, quando si passa sopra una card, l’immagine e il contenuto si spostano in direzioni opposte, dando un senso di profondità e interattività.
Ecco il codice CSS per ottenere questo effetto:
/* Reset di base e setup generale */
*, *::after, *::before {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-size: 62.5%;
}
body {
width: 100vw;
min-height: 100vh;
background-color: #242323;
font-family: "Poppins", sans-serif;
display: flex;
justify-content: center;
align-items: center;
}
/* Stile per il container e le box */
.container {
position: relative;
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 30rem;
height: 30rem;
margin: 4rem;
transition: all 0.5s ease-in-out;
}
/* Stile per l'animazione hover */
.container .box:hover .imgBox {
transform: translate(-3.5rem, -3.5rem);
}
.container .box:hover .content {
transform: translate(3.5rem, 3.5rem);
}
/* Stile dell'immagine e della descrizione */
.imgBox {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
transition: all 0.5s ease-in-out;
}
.imgBox img {
width: 30rem;
height: 30rem;
object-fit: cover;
}
.content {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 1.5rem;
display: flex;
justify-content: center;
background-color: #fff;
z-index: 1;
align-items: flex-end;
text-align: center;
transition: 0.5s ease-in-out;
}
.content h2 {
font-size: 2rem;
color: #111;
font-weight: 500;
}
.content span {
color: #555;
font-size: 1.4rem;
font-weight: 300;
}
Spiegazione del Codice CSS
- Transizioni Sull’Hover: Ogni volta che si passa con il mouse su una delle
box
, l’immagine (imgBox
) e il contenuto (content
) si muovono in direzioni opposte grazie alle proprietàtransform: translate()
. Questo crea un effetto di movimento parallelo che simula una sorta di profondità. - Effetto di Sovrapposizione: Utilizzando la proprietà z-index, l’immagine (
imgBox
) viene posizionata sopra al contenuto (content
). Durante l’animazione, le immagini e i contenuti si scambiano grazie al movimento e all’uso di z-index.
Vantaggi dell’Effetto Hover con HTML e CSS
- Performance: Essendo realizzato interamente con HTML e CSS, questo effetto non richiede JavaScript, il che migliora le prestazioni e riduce il carico del sito.
- Accessibilità: L’uso di un semplice effetto visivo migliora l’esperienza utente, facendo capire immediatamente quali elementi sono interattivi.
- Flessibilità: Questo tipo di animazione può essere facilmente adattato e modificato per diverse situazioni, rendendolo ideale per landing page, portfoli, e e-commerce.
Conclusioni
Le animazioni hover come questa rappresentano una soluzione semplice ma efficace per migliorare la navigazione e l’estetica del tuo sito. La loro implementazione richiede solo HTML e CSS, il che le rende accessibili anche per chi ha conoscenze base di sviluppo web. Con un tocco di creatività e qualche piccola personalizzazione, puoi usare queste animazioni per creare una esperienza unica e coinvolgente per i tuoi utenti.
Hai trovato utile questo Articolo? Continua a seguire Cyberalchimista sui social (@cyberalchimista) per altri tutorial e consigli sullo sviluppo web! Se hai domande o vuoi condividere i tuoi progetti contattaci.