La pseudo-classe dinamica :hover
può essere usata per mostrare delle popup di immagini dinamiche quando si passa con il mouse sui link. La tecnica CSS usata è quella del posizionamento contestuale. Vediamo insieme i dettagli.
Abbiamo la seguente struttura HTML:
<div id="content">
<ul>
<li><a href="#">Link 1</a>
<div class="popup">
<img src="1.jpg" alt="" />
<p>Didascalia 1</p>
</div>
</li>
<li><a href="#">Link 2</a>
<div class="popup">
<img src="2.jpg" alt="" />
<p>Didascalia 2</p>
</div>
</li>
<li><a href="#">Link 3</a>
<div class="popup">
<img src="3.jpg" alt="" />
<p>Didascalia 3</p>
</div>
</li>
</ul>
</div>
Il posizionamento contestuale ha luogo tra le voci di lista e gli elementi con classe popup
al loro interno. Questi elementi dovranno inizialmente essere nascosti, quindi useremo un valore negativo della proprietà top
:
#content {
width: 50em;
padding: 1em;
margin: 0 auto;
}
#content ul {
margin: 0;
padding: 0;
list-style: none;
height: 100%;
}
#content li {
margin-bottom: 0.5em;
height: 100%;
position: relative;
}
#content a {
background: #d34545;
color: #fff;
padding: 0.3em;
font-weight: bold;
text-decoration: none;
display: block;
width: 100px;
text-align: center;
}
#content div.popup {
width: 250px;
padding: 5px;
background: #fff;
position: absolute;
top: -1000em;
left: 150px;
border: 2px solid #ccc;
border-radius: 5px;
}
#content div.popup img {
width: 90%;
margin: 0 auto;
display: block;
padding: 10px 0 0 0;
}
#content div.popup p {
margin: 0;
text-align: center;
padding: 5px 0;
font-style: italic;
color: #333;
}
Quindi useremo la pseudo-classe dinamica :hover
in questo modo:
#content li:hover div.popup {
top: 0;
}
Potete visionare l'esempio finale in questa pagina.