Actualmente estoy trabajando en una página de destino 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 un borde a otro). 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 usar consultas de medios para mostrar 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 src img con CSS, así que pensé que debería usar un fondo CSS para la imagen en lugar de una etiqueta img en el HTML.
Parece que no puedo hacer que esto funcione correctamente ya que el div con la imagen de fondo necesita tanto un ancho como un alto 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 (probada con 150px) puedo usar 'background-size: 100%' para ajustar la imagen en el div correctamente. Puedo usar el CSS3 más reciente para este proyecto, ya que está dirigido únicamente a dispositivos móviles.
Agregué un ejemplo aproximado a continuación. Disculpe los estilos en línea, pero quería dar un ejemplo básico para intentar aclarar un poco 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>
¿Es posible que tenga que darle al contenedor div un porcentaje de altura basado en toda la página o estoy viendo esto completamente mal?
Además, ¿crees que los fondos CSS son la mejor manera de hacer esto? Tal vez haya una técnica que sirva diferentes etiquetas img según el ancho del dispositivo / pantalla. La idea general es que la plantilla de la página de destino se usará varias veces con diferentes imágenes de productos, por lo que debo asegurarme de desarrollarla de la mejor manera posible.
Me disculpo porque esto es un poco largo, pero estoy yendo y viniendo de este proyecto al siguiente, así que me gustaría terminar esta pequeña cosa. Gracias de antemano por su tiempo, es muy apreciado. Saludos