Ini mungkin terdengar seperti pertanyaan konyol.
Jika saya menggunakan potongan CSS ini untuk tampilan biasa (Dimana box-bg.png
200px kali 200px);
.box{
background:url('images/box-bg.png') no-repeat top left;
width:200px;
height:200px
}
dan jika saya menggunakan kueri media seperti ini untuk menargetkan tampilan retina (Dengan gambar @ 2x menjadi versi resolusi tinggi);
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
.box{background:url('images/[email protected]') no-repeat top left;}
}
Apakah saya perlu menggandakan ukuran .box
div menjadi 400px kali 400px agar sesuai dengan gambar latar resolusi tinggi yang baru?
css
responsive-design
media-queries
Dean Elliott
sumber
sumber
Jawaban:
Tidak, tetapi Anda perlu menyetel
background-size
properti agar sesuai dengan dimensi aslinya:EDIT
Untuk menambahkan sedikit lebih banyak ke jawaban ini, berikut adalah kueri deteksi retina yang cenderung saya gunakan:
- Sumber
NB. Ini
min--moz-device-pixel-ratio:
bukan salah ketik. Ini adalah bug yang terdokumentasi dengan baik di versi Firefox tertentu dan harus ditulis seperti ini untuk mendukung versi yang lebih lama (sebelum Firefox 16). - SumberSeperti yang @LiamNewmarch sebutkan dalam komentar di bawah, Anda dapat memasukkan pernyataan
background-size
singkat Andabackground
seperti ini:Namun, saya pribadi tidak akan menyarankan penggunaan formulir singkat karena tidak didukung di iOS <= 6 atau Android sehingga tidak dapat diandalkan dalam banyak situasi.
sumber
background-size: cover;
. Ini akan mempertahankan rasio aspek sambil "menutupi" seluruh latar belakang dengan gambar.background-size
properti ke dalambackground
seperti:background: url('images/[email protected]') no-repeat top left / 200px 200px
. Perhatikan bahwa browser yang tidak mendukungbackground-size
akan mengabaikan aturan ini.Berikut adalah solusi yang juga mencakup perangkat DPI ( MDPI ) Tinggi > ~ 160 titik per inci seperti beberapa Perangkat non-iOS (fe: Google Nexus 7 2012 ):
Karena @ 3rror404 disertakan dalam hasil editnya setelah menerima umpan balik dari komentar, ada dunia di luar Webkit / iPhone. Satu hal yang mengganggu saya dengan sebagian besar solusi sejauh ini seperti yang dirujuk sebagai sumber di atas di CSS-Tricks , adalah bahwa ini tidak sepenuhnya diperhitungkan.
Sumber aslinya sudah melangkah lebih jauh.
Sebagai contoh Nexus 7 (2012) layar adalah layar tvdpi dengan aneh
device-pixel-ratio
dari1.325
. Saat memuat gambar dengan resolusi normal, gambar tersebut ditingkatkan melalui interpolasi dan oleh karena itu menjadi buram. Bagi saya, menerapkan aturan ini dalam kueri media untuk memasukkan perangkat tersebut berhasil dalam umpan balik pelanggan terbaik.sumber
@2x
hanya disajikan kepada2dppx
+ klien.Jika Anda berencana menggunakan gambar yang sama untuk layar retina dan non-retina, berikut solusinya. Katakanlah Anda memiliki gambar
200x200
dan memiliki dua ikon di baris atas dan dua ikon di baris bawah. Jadi, ini empat kuadran.Penskalaan dan pemosisian ikon sprite hingga 50% dari nilai sebenarnya, Anda bisa mendapatkan hasil yang diharapkan.
Solusi mixin SCSS berguna lainnya oleh Ryan Benhase .
Untuk info lebih lanjut tentang mixin di atas BACA DI SINI .
sumber