Atualmente estou trabalhando em uma página de destino móvel para uma empresa. É um layout bem básico, mas abaixo do cabeçalho há uma imagem de um produto que sempre terá 100% de largura (o design mostra sempre indo de ponta a ponta). Dependendo da largura da tela, a altura da imagem obviamente se ajustará de acordo. Eu fiz isso originalmente com um img (com largura de CSS de 100%) e funcionou muito bem, mas percebi que gostaria de usar consultas de mídia para servir imagens diferentes com base em resoluções diferentes - digamos um pequeno, médio e uma versão grande da mesma imagem, por exemplo. Eu sei que você não pode alterar o src img com CSS, então percebi que deveria usar um fundo CSS para a imagem, em vez de uma tag img no HTML.
Não consigo fazer isso funcionar corretamente, pois o div com a imagem de fundo precisa de largura e altura para mostrar o fundo. Obviamente, posso usar 'largura: 100%', mas o que devo usar para a altura? Posso colocar uma altura fixa aleatória como 150px e então posso ver os primeiros 150px da imagem, mas essa não é a solução, pois não há uma altura fixa. Eu joguei e descobri que uma vez que há uma altura (testado com 150px) eu posso usar 'background-size: 100%' para ajustar a imagem no div corretamente. Posso usar o CSS3 mais recente para este projeto, pois ele é voltado exclusivamente para dispositivos móveis.
Eu adicionei um exemplo aproximado abaixo. Desculpe os estilos embutidos, mas eu queria dar um exemplo básico para tentar tornar minha pergunta um pouco mais clara.
<div id="image-container">
<div id="image" style="background: url(image.jpg) no-repeat; width: 100%; height: 150px; background-size: 100%;"></div>
</div>
Talvez eu precise dar ao div do contêiner uma altura percentual com base na página inteira ou estou olhando para isso completamente errado?
Além disso, você acha que os fundos CSS são a melhor maneira de fazer isso? Talvez haja uma técnica que veicula diferentes tags img com base na largura do dispositivo / tela. A ideia geral é que o modelo da página de destino seja usado várias vezes com imagens de produtos diferentes, então preciso ter certeza de que o desenvolvo da melhor maneira possível.
Peço desculpas se isso é um pouco prolixo, mas estou indo e voltando deste projeto para o próximo, então gostaria de terminar este pequeno detalhe. Agradecemos antecipadamente pelo seu tempo, é muito apreciado. Saudações