Actualmente estoy trabajando en una página de aterrizaje móvil para una empresa. Es un diseño realmente básico, pero debajo del encabezado hay una imagen de un producto que siempre tendrá un ancho del 100% (el diseño muestra que siempre va de orilla a orilla). Dependiendo del ancho de la pantalla, la altura de la imagen obviamente se ajustará en consecuencia. Originalmente hice esto con un img (con un ancho de CSS del 100%) y funcionó muy bien, pero me di cuenta de que me gustaría utilizar las consultas de medios para servir diferentes imágenes basadas en diferentes resoluciones, digamos una pequeña, mediana y una versión grande de la misma imagen, por ejemplo. Sé que no puedes cambiar el img src con CSS, así que pensé que debería usar un fondo CSS para la imagen en lugar de una etiqueta img en el HTML.Imagen de fondo del 100% de ancho con una altura 'automática'
Parece que no puedo hacer que esto funcione correctamente, ya que el div con la imagen de fondo necesita un ancho y una altura para mostrar el fondo. Obviamente puedo usar 'ancho: 100%', pero ¿qué uso para la altura? Puedo poner una altura fija aleatoria como 150px y luego puedo ver los 150px superiores de la imagen, pero esta no es la solución ya que no hay una altura fija. Tuve una jugada y descubrí que una vez que hay una altura (probado con 150px) puedo usar 'background-size: 100%' para que se ajuste correctamente a la imagen en el div. Puedo usar el CSS3 más reciente para este proyecto, ya que está destinado exclusivamente a dispositivos móviles.
He agregado un ejemplo aproximado a continuación. Disculpe los estilos en línea, pero quería dar un ejemplo básico para tratar de aclarar mi pregunta.
<div id="image-container">
<div id="image" style="background: url(image.jpg) no-repeat; width: 100%; height: 150px; background-size: 100%;"></div>
</div>
hacer yo tal vez tienen que dar el div contenedor una altura porcentaje basado en toda la página o estoy mirando esta completamente equivocado?
Además, ¿cree que los fondos CSS son la mejor manera de hacerlo? Tal vez haya una técnica que sirva diferentes etiquetas img basadas en el ancho del dispositivo/pantalla. La idea general es que la plantilla de la página de destino se utilizará en numerosas ocasiones con diferentes imágenes de productos, así que debo asegurarme de desarrollar esto de la mejor manera posible.
Me disculpo es que esto es un poco largo, pero estoy yendo y viniendo de este proyecto al siguiente, así que me gustaría hacer esta pequeña cosa. Gracias de antemano por su tiempo, es muy apreciado. Saludos
Gracias por tomarse el tiempo para hacer esto por mí, es muy apreciado. Simplemente lo di rápido y parece estar funcionando. –
Esta vieja respuesta parecía atractiva ...pero ¿no es cierto que el navegador móvil todavía descargará (simplemente no mostrará) la imagen inicialmente configurada en el código HTML como src? Si es así, no es un comienzo, ya que el objetivo es conservar los recursos del dispositivo móvil. –
Creo que Tim Gallant tiene razón en este caso; en este caso, el navegador cargará ambas imágenes como un recurso y luego solo mostrará la de menor resolución. Entonces, si bien esto parece atractivo, en el móvil es en realidad más lento que cargar solo el de alta resolución y con ese sacrificio solo verá la imagen de menor resolución ... lo peor de ambos mundos. –