Preciso dobrar o tamanho da div .box para 400px por 400px para corresponder à nova imagem de fundo de alta resolução
Não, mas você precisa definir a background-size
propriedade para corresponder às dimensões originais:
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
.box{
background:url('images/box-bg@2x.png') no-repeat top left;
background-size: 200px 200px;
}
}
EDITAR
Para adicionar um pouco mais a esta resposta, aqui está a consulta de detecção de retina que costumo usar:
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
}
- Fonte
NB. Este min--moz-device-pixel-ratio:
não é um erro de digitação. É um bug bem documentado em certas versões do Firefox e deve ser escrito assim para oferecer suporte a versões mais antigas (anteriores ao Firefox 16).
- Fonte
Como @LiamNewmarch mencionado nos comentários abaixo, você pode incluir o background-size
em sua background
declaração abreviada da seguinte forma:
.box{
background:url('images/box-bg@2x.png') no-repeat top left / 200px 200px;
}
No entanto, eu pessoalmente não aconselharia o uso da forma abreviada, pois não é compatível com iOS <= 6 ou Android, tornando-a não confiável na maioria das situações.