Es porque no tiene en cuenta un pequeño detalle en el html. A ver si lo descubre:
Código HTML:
Ver original<!DOCTYPE html>
* {
margin:0; padding:0; position: relative;
}
#con {
width: 600px;
margin: 0 auto;
overflow: hidden;
background: #d4d4d4;
}
#uno, #dos, #tres {
float:left;
width: 200px;
height: 250px;
color: #603;
padding-bottom: 40px;
}
#dos {
background: #fff;
-moz-transition: all 1s;
-webkit-transition: all 1s;
transition: all 1s;
}
#ocultar {
position: absolute;
bottom: 0;
left:0;
width: 100%;
height: 40px;
background: #fc0;
text-align: center;
z-index: 5;
}
#ocultar:hover { cursor: pointer;}
#ocultar:hover ~ #dos {
color: #fff;
background: #404040;
font-size: 400%;
-moz-transition: all 1s;
-webkit-transition: all 1s;
transition: all 1s;
}
<div id="ocultar">ocultar
</div>