Isso pode soar como uma pergunta boba.
Se eu usar este snippet CSS para monitores regulares (onde box-bg.png
é 200px por 200px);
.box{
background:url('images/box-bg.png') no-repeat top left;
width:200px;
height:200px
}
e se eu usar uma consulta de mídia como esta para visar telas de retina (com a imagem @ 2x sendo a versão de alta resolução);
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
.box{background:url('images/[email protected]') no-repeat top left;}
}
Preciso dobrar o tamanho do .box
div para 400 px por 400 px para corresponder à nova imagem de fundo de alta resolução?
css
responsive-design
media-queries
Dean Elliott
fonte
fonte
Respostas:
Não, mas você precisa definir a
background-size
propriedade para corresponder às dimensões originais:EDITAR
Para adicionar um pouco mais a esta resposta, aqui está a consulta de detecção de retina que costumo usar:
- 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). - FonteComo @LiamNewmarch mencionado nos comentários abaixo, você pode incluir o
background-size
em suabackground
declaração abreviada da seguinte forma: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.
fonte
background-size: cover;
. Isso manterá a proporção de aspecto enquanto "cobre" todo o fundo com a imagem.background-size
propriedade para obackground
assim:background: url('images/[email protected]') no-repeat top left / 200px 200px
. Observe que os navegadores que não oferecem suportebackground-size
irão ignorar esta regra.Aqui está uma solução que também inclui dispositivos de alto (er) DPI ( MDPI ) > ~ 160 pontos por polegada, como alguns dispositivos não iOS (ex: Google Nexus 7 2012 ):
Como @ 3rror404 incluiu em sua edição após receber feedback dos comentários, existe um mundo além do Webkit / iPhone. Uma coisa que me incomoda com a maioria das soluções até agora, como aquela referenciada como fonte acima no CSS-Tricks , é que isso não é totalmente levado em consideração.
A fonte original já foi mais longe.
Como exemplo, a tela do Nexus 7 (2012) é uma tela TVDPI com um estranho
device-pixel-ratio
de1.325
. Ao carregar as imagens com resolução normal, elas são aumentadas por interpolação e, portanto, borradas. Para mim, a aplicação desta regra na consulta de mídia para incluir esses dispositivos obteve o melhor feedback do cliente.fonte
@2x
sendo servido apenas para2dppx
+ clientes.Se você planeja usar a mesma imagem para retina e tela não retina, aqui está a solução. Digamos que você tenha uma imagem de
200x200
e dois ícones na linha superior e dois ícones na linha inferior. Portanto, são quatro quadrantes.Escalando e posicionando os ícones do sprite em 50% do valor real, você pode obter o resultado esperado.
Outra solução de mixin SCSS útil por Ryan Benhase .
Para mais informações sobre o mixin acima, LEIA AQUI .
fonte