Isso parece trivial, mas depois de toda a pesquisa e codificação, não consigo fazer funcionar. As condições são:
- O tamanho da janela do navegador é desconhecido. Portanto, não proponha uma solução envolvendo tamanhos absolutos de pixels.
- As dimensões originais da imagem são desconhecidas e podem ou não caber na janela do navegador.
- A imagem é centralizada verticalmente e horizontalmente.
- As proporções da imagem devem ser conservadas.
- A imagem deve ser exibida em sua totalidade na janela (sem cortes).
- Não desejo que as barras de rolagem apareçam (e não deveriam aparecer se a imagem couber).
- A imagem é redimensionada automaticamente quando as dimensões da janela mudam, para ocupar todo o espaço disponível sem ser maior que seu tamanho original.
Basicamente, o que eu quero é:
.fit {
max-width: 99%;
max-height: 99%;
}
<img class="fit" src="pic.png">
O problema com o código acima é que ele não funciona: a imagem ocupa todo o espaço vertical de que precisa, adicionando uma barra de rolagem vertical.
À minha disposição está PHP, Javascript, JQuery, mas mataria por uma solução somente CSS. Eu não me importo se não funcionar no IE.