Quero sobrepor uma imagem com outra usando CSS. Um exemplo disso é a primeira imagem (o plano de fundo, se você preferir) será um link em miniatura de um produto, com o link abrindo uma caixa de luz / pop-up mostrando uma versão maior da imagem.
No topo desta imagem vinculada, eu gostaria que uma imagem de uma lupa mostrasse às pessoas que a imagem pode ser clicada para aumentá-la (aparentemente isso não é óbvio sem a lupa).
Respostas:
Acabei de fazer exatamente isso em um projeto. O lado HTML parecia um pouco com isso:
Então, usando CSS:
Deixei grande parte da amostra no CSS para que você possa ver como eu decidi fazer o estilo. Note que diminui a opacidade para que você possa ver através da lupa.
Espero que isto ajude.
EDIT: Para esclarecer o seu exemplo - você poderia ignorar
visibility:hidden;
e matar a:hover
execução, se quisesse, foi assim que eu fiz.fonte
Uma técnica, sugerida por este artigo , seria fazer o seguinte:
fonte
Isso funciona, desde que o elemento pai não esteja usando posicionamento estático. Simplesmente configurá-lo para o posicionamento relativo faz o truque. Além disso, o IE <8 não suporta o seletor : before ou o conteúdo .
fonte
Aqui está como eu fiz isso recentemente. Não é perfeito semanticamente, mas faz o trabalho.
fonte
Você pode conferir este tutorial: http://www.webdesignerwall.com/tutorials/css-decorative-gallery/
Nele, o escritor usa um elemento de espaço vazio para adicionar uma imagem de sobreposição. Você pode usar o jQuery para injetar os referidos elementos de extensão, se desejar manter seu código o mais limpo possível. Um exemplo também é dado no artigo acima mencionado.
Espero que isto ajude!
-Dave
fonte
Se você quer apenas o vidro de aumento ao passar o mouse, pode usar
http://www.javascriptkit.com/dhtmltutors/csscursors.shtml
Se você deseja que ele permaneça lá permanentemente, provavelmente deve incluí-lo no thumnail original ou adicioná-lo usando JavaScript, em vez de adicioná-lo ao HTML (isso é puro estilo e não deve estar no conteúdo).
Deixe-me saber se você deseja ajuda no lado do JavaScript.
fonte
No CSS3, você pode fazer o seguinte:
Retirado de Posso ter várias imagens de fundo usando CSS?
fonte
Tudo o que queremos é pai acima de filho. É assim que se faz.
Você colocou
img
emspan
, conjuntoz-index & position
para ambos os elementos, e extradisplay
de span. Adicione o cursor paraspan
que você possa testá-lo e conseguir!HTML:
CSS
fonte
A menos que você use a
<img>
tag, que exibe uma imagem por si só, não será possível conseguir isso apenas com CSS puro. Você também precisará de DOIS elementos HTML - um para cada imagem. Isso ocorre porque a única maneira de fazer um elemento exibir uma imagem via CSS é com abackground-image
propriedade e cada elemento pode ter apenas uma imagem de plano de fundo. Quais são os dois elementos que você escolhe e como os posiciona depende de você. Existem várias maneiras de posicionar um elemento HTML acima de outro.fonte
Aqui está uma boa técnica para exibir uma imagem de sobreposição centralizada com um plano de fundo semitransparente sobre um link de imagem:
HTML
CSS
fonte
Aqui está uma técnica JQuery com plano de fundo semitransparente.
HTML
CSS
app.js
fonte