Soy un principiante en la programación de rieles, intento mostrar muchas imágenes en una página. Algunas imágenes deben colocarse sobre otras. Para hacerlo simple, digamos que quiero un cuadrado azul, con un cuadrado rojo en la esquina superior derecha del cuadrado azul (pero no apretado en la esquina). Estoy tratando de evitar la composición (con ImageMagick y similares) debido a problemas de rendimiento.
Solo quiero colocar imágenes superpuestas entre sí.
Como un ejemplo más difícil, imagine un odómetro colocado dentro de una imagen más grande. Para seis dígitos, necesitaría componer un millón de imágenes diferentes, o hacerlo todo sobre la marcha, donde todo lo que se necesita es colocar las seis imágenes encima de la otra.
html
css
optimization
graphics
rrichter
fuente
fuente
Respuestas:
Ok, después de un tiempo, esto es lo que aterricé:
Como la solución más simple. Es decir:
Cree un div relativo que se coloca en el flujo de la página; coloque la imagen base primero como relativa para que el div sepa cuán grande debería ser; coloque las superposiciones como absolutas en relación con la esquina superior izquierda de la primera imagen. El truco es conseguir que los parientes y los absolutos sean correctos.
fuente
a
y "b" tenía un ID deb
, ¿podría este código JavaScript (configuraciónx
yy
cálculo) funcionaría para cambiar la posición deb
?Esta es una mirada básica a lo que he hecho para flotar una imagen sobre otra.
Fuente
fuente
Aquí hay un código que puede darle ideas:
JSFiddle
Sospecho que la solución de Espo puede ser inconveniente porque requiere que coloque ambas imágenes absolutamente. Es posible que desee que el primero se posicione en el flujo.
Por lo general, hay una forma natural de hacerlo que es CSS. Pones position: relative en el elemento contenedor y luego posicionas absolutamente a los niños dentro de él. Desafortunadamente, no puedes poner una imagen dentro de otra. Por eso necesitaba contenedor div. Tenga en cuenta que lo hice flotante para que se ajuste automáticamente a su contenido. Hacer que se muestre: el bloqueo en línea debería funcionar teóricamente también, pero el soporte del navegador es deficiente allí.
EDITAR: eliminé los atributos de tamaño de las imágenes para ilustrar mejor mi punto. Si desea que la imagen del contenedor tenga sus tamaños predeterminados y no conoce el tamaño de antemano, no puede usar el truco de fondo . Si lo hace, es una mejor manera de hacerlo.
fuente
Un problema que noté que podría causar errores es que en la respuesta de rrichter, el código a continuación:
debe incluir las unidades px dentro del estilo, por ejemplo.
Aparte de eso, la respuesta funcionó bien. Gracias.
fuente
Puede posicionarse absolutamente en
pseudo elements
relación con su elemento padre.Esto le da dos capas adicionales para jugar con cada elemento, por lo que colocar una imagen encima de otra se vuelve fácil, con un marcado mínimo y semántico (sin divisiones vacías, etc.).
margen:
css:
Aquí hay una DEMO EN VIVO
fuente
La manera fácil de hacerlo es usar background-image y luego poner un <img> en ese elemento.
La otra forma de hacerlo es usar capas CSS. Hay muchos recursos disponibles para ayudarlo con esto, solo busque capas css .
fuente
Estilo en línea solo para mayor claridad aquí. Use una hoja de estilo CSS real.
fuente
Puede ser un poco tarde, pero para esto puede hacer:
HTML
HABLAR CON DESCARO A
fuente
@ buti-oxa: No debe ser pedante, pero su código no es válido. El HTML
width
y losheight
atributos no permiten unidades; Probablemente estés pensando en el CSSwidth:
y lasheight:
propiedades. También debe proporcionar un tipo de contenido (text/css
; consulte el código de Espo) con la<style>
etiqueta.Dejar
px;
los atributoswidth
yheight
puede hacer que un motor de renderizado se resista.fuente
Cree un div relativo que se coloca en el flujo de la página; coloque la imagen base primero como relativa para que el div sepa cuán grande debería ser; coloque las superposiciones como absolutas en relación con la esquina superior izquierda de la primera imagen. El truco es conseguir que los parientes y los absolutos sean correctos.
fuente