Quiero superponer una imagen con otra usando CSS. Un ejemplo de esto es la primera imagen (el fondo si lo desea) será un enlace en miniatura de un producto, con el enlace que abre una caja de luz / ventana emergente que muestra una versión más grande de la imagen.
Además de esta imagen vinculada, me gustaría una imagen de una lupa, para mostrar a las personas que se puede hacer clic en la imagen para agrandarla (aparentemente esto no es obvio sin la lupa).
Respuestas:
Acabo de terminar haciendo esto exactamente en un proyecto. El lado HTML se parecía un poco a esto:
Luego usando CSS:
Dejé una gran parte de la muestra allí en el CSS para que puedan ver cómo decidí hacer el estilo. Tenga en cuenta que bajé la opacidad para que pueda ver a través de la lupa.
Espero que esto ayude.
EDITAR: Para aclarar su ejemplo, puede ignorar
visibility:hidden;
y matar la:hover
ejecución si lo desea, así fue como lo hice.fuente
Una técnica, sugerida por este artículo , sería hacer esto:
fuente
Esto funciona, siempre y cuando el elemento padre no esté utilizando posicionamiento estático. Simplemente establecerlo en un posicionamiento relativo es el truco. Además, IE <8 no admite el : antes del selector o el contenido .
fuente
Así es como lo hice recientemente. No es perfecto semánticamente, pero hace el trabajo.
fuente
Es posible que desee consultar este tutorial: http://www.webdesignerwall.com/tutorials/css-decorative-gallery/
En él, el escritor utiliza un elemento span vacío para agregar una imagen superpuesta. Puede usar jQuery para inyectar dichos elementos span, si desea mantener su código lo más limpio posible. También se da un ejemplo en el artículo mencionado.
¡Espero que esto ayude!
-Dave
fuente
Si solo desea que la lupa se desplace, puede usar
http://www.javascriptkit.com/dhtmltutors/csscursors.shtml
Si lo quiere allí permanentemente, probablemente debería incluirlo en la miniatura original o agregarlo usando JavaScript en lugar de agregarlo al HTML (esto es puramente estilo y no debe estar en el contenido).
Avíseme si desea ayuda en el lado de JavaScript.
fuente
En CSS3, puede hacer lo siguiente:
Tomado de ¿Puedo tener múltiples imágenes de fondo usando CSS?
fuente
Todo lo que queremos es padre por encima de hijo. Así es como lo haces.
Pones
img
enspan
, establecez-index & position
para ambos elementos, y extradisplay
para span. ¡Agrega el cursor paraspan
que puedas probarlo y lo tienes!HTML:
CSS
fuente
A menos que use la
<img>
etiqueta, que muestra una imagen por sí sola, no podrá lograr esto solo con CSS puro. También necesitará DOS elementos HTML, uno para cada imagen. Esto se debe a que la única forma en que puede hacer que un elemento muestre una imagen a través de CSS es con labackground-image
propiedad, y cada elemento solo puede tener una imagen de fondo. Depende de usted cuáles son los dos elementos que elige y cómo los coloca. Hay muchas formas de colocar un elemento HTML sobre otro.fuente
Aquí hay una buena técnica para mostrar una imagen superpuesta centrada con un fondo semitransparente sobre un enlace de imagen:
HTML
CSS
fuente
Aquí hay una técnica JQuery con fondo semitransparente.
HTML
CSS
app.js
fuente