Giusto per dare qualche spunto, posto un esempio che ho buttato giù rispetto a quanto hai indicato:
codice:
<!DOCTYPE HTML>
<html>
<head>
<title>Esempio</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
h1{
color:olive;
text-align:center;
}
#album {
background:yellowgreen;
width:352px;
height:124px;
padding:20px 0 0 20px;
margin:0 auto;
}
#album>div {
margin-right:10px;
float:left;
}
#album img {
border:2px solid transparent;
width:100px;
height:100px;
transition: border-color .4s, border-bottom-width 0s 1.2s;
}
#album>div>div { /* DESCRIZIONE */
position:absolute;
left:0;
margin-top:-5px;
padding:10px 0;
width:100%;
color:white;
text-align:center;
background:olivedrab;
z-index:-99;
opacity:0;
visibility:hidden;
transform:translateY(-25px);
transition: opacity .2s .2s, transform 0s .4s, visibility 0s .4s, z-index .4s;
}
#album>div:hover img {
border-color:olivedrab;
border-bottom-width:22px;
transition: border-color .2s;
}
#album>div:hover div {
z-index:99;
opacity:1;
visibility:visible;
transform:translateY(0);
transition: opacity .2s, transform .3s;
}
</style>
</head>
<body>
<h1>Photobook</h1>
<div id="album">
<div><img src="img/immagine1.png"><div><h2>Immagine 1</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p></div></div>
<div><img src="img/immagine2.png"><div><h2>Immagine 2</h2><p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p></div></div>
<div><img src="img/immagine3.png"><div><h2>Immagine 3</h2><p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div></div>
</div>
</body>
</html>
Nota: ribadisco che è solo un esempio. Per le nuove specifiche css3 sono da inserire eventualmente le regole aggiuntive per il crossbroesing.