Mostrar legenda ao passar o mouse sobre imagens

Legenda com CSS
Vou mostrar um exemplo rápido para fazer o efeito de revelar a legenda de uma imagem apenas quando o usuário passar o mouse sobre a imagem. Normalmente se coloca a legenda logo abaixo da imagem, nesse caso a legenda aparecerá sobre a imagem e na parte inferior. O efeito é inteiramente feito com CSS, sem qualquer necessidade de JavaScript. É um ótimo efeito para ser usado em galerias de imagens para colocar a descrição da imagem quando o mouse estiver sobre a imagem.

A técnica do efeito consiste em esconder a legenda até que o usuário passe o mouse sobre a imagem. Repare que usamos a marcação span class="desc" para tal finalidade. Pensando em tornar mais óbvio que temos uma legenda na imagem vamos adicionar um link “saiba mais”. Quando o visitante do site passar o mouse sobre o link a legenda aparecerá.

Exemplo

Você pode ver o resultado final desse tutorial na Página de Exemplo. O site DesignFlavr faz uso desse efeito, porém um pouco mais complexo.

HTML

<div class="imgefeito">
<a href="#">
	<img src="teste.jpg" alt="Daim Graffiti" />
	<span class="mais">Saiba Mais</span>
	<span class="desc">
		<strong>Lorem Ipsum</strong>
		Is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley.
	</span>
</a>
</div>

CSS

Abaixo a estilização da DIV que aloca todos os outros elementos.

.imgefeito {
	margin: 0;
	overflow: hidden;
	float: left;
	position: relative;
}
.imgefeito a {
	text-decoration: none;
	float: left;
}
.imgefeito a:hover {
	cursor: pointer;
} 

Estilização da imagem onde aparecerá o texto no estado hover, ou seja, quando o mouse estiver sobre a imagem.

.imgefeito a img {
	float: left;
	margin: 0;
	border: none;
	padding: 10px;
	background: #fff;
	border: 1px solid #ddd;
} 

Em seguida estilizamos o texto Saiba Mais e a “caixa” da legenda que será mostrada quando passarmos o mouse sobre o texto. Perceba o uso de um comando proprietário da Microsoft, -ms-filter para o efeito funcionar no Internet Explorer 8.

.imgefeito a .mais {
	position: absolute;
	right: 20px;
	bottom: 20px;
	font-size: 1.2em;
	color: #fff;
	background: #000;
	padding: 5px 10px;
	filter:alpha(opacity=65);
	opacity:.65;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=65)"; /*--IE 8 Transparency--*/
}
.imgefeito a:hover .desc{
	display: block;
	font-size: 1.2em;
	padding: 10px 0;
	background: #111;
	filter:alpha(opacity=75);
	opacity:.75;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)"; /*--IE 8 Transparency--*/
	color: #fff;
	position: absolute;
	bottom: 11px;
	left: 11px;
	padding: 10px;
	margin: 0;
	width: 615px;
	border-top: 1px solid #999;
}
.imgefeito a:hover .desc strong {
	display: block;
	margin-bottom: 5px;
	font-size:1.5em;
}

Referências:
Sohtanaka e Aranea.Zuavra.

Como falei no artigo, esta técnica é muito útil para sites de galerias de imagens. Pelo fato da legenda aparecer sobre a imagem, conseguimos economizar espaço na página já que não precisamos deixar um espaço para a legenda. Fica aí a dica!

Quer ficar sabendo das atualizações aqui no Blog? Siga-me no Twitter: @kadunew


Comentários

Uma resposta para “Mostrar legenda ao passar o mouse sobre imagens”

  1. Tutorial excelente. parabéns!