Semua jawaban yang tercantum di atas, yang menggunakan max-device-width
atau max-device-height
untuk pertanyaan media, menderita bug yang sangat kuat: mereka juga menargetkan banyak perangkat seluler populer lainnya (mungkin tidak diinginkan dan tidak pernah diuji, atau yang akan menghantam pasar di masa depan).
Kueri ini akan berfungsi untuk perangkat apa pun yang memiliki layar lebih kecil , dan mungkin desain Anda akan rusak.
Dikombinasikan dengan permintaan media khusus perangkat serupa (untuk HTC, Samsung, IPod, Nexus ...) praktik ini akan meluncurkan bom waktu. Untuk debigging, ide ini dapat membuat CSS Anda menjadi spagetti yang tidak terkontrol. Anda tidak pernah dapat menguji semua perangkat yang mungkin.
Perlu diketahui bahwa satu-satunya permintaan media yang selalu menargetkan IPhone5 dan tidak ada yang lain , adalah:
/* iPhone 5 Retina regardless of IOS version */
@media (device-height : 568px)
and (device-width : 320px)
and (-webkit-min-device-pixel-ratio: 2)
/* and (orientation : todo: you can add orientation or delete this comment)*/ {
/*IPhone 5 only CSS here*/
}
Perhatikan bahwa lebar dan tinggi yang tepat , bukan lebar maks diperiksa di sini.
Sekarang, apa solusinya? Jika Anda ingin menulis halaman web yang akan terlihat bagus di semua perangkat yang memungkinkan, praktik terbaik adalah Anda menggunakan degradasi
/ * pola degradasi kami memeriksa lebar layar hanya yakin, ini akan berubah beralih dari potret ke lanskap * /
/*css for desktops here*/
@media (max-device-width: 1024px) {
/*IPad portrait AND netbooks, AND anything with smaller screen*/
/*make the design flexible if possible */
/*Structure your code thinking about all devices that go below*/
}
@media (max-device-width: 640px) {
/*Iphone portrait and smaller*/
}
@media (max-device-width: 540px) {
/*Smaller and smaller...*/
}
@media (max-device-width: 320px) {
/*IPhone portrait and smaller. You can probably stop on 320px*/
}
Jika lebih dari 30% pengunjung situs web Anda berasal dari perangkat seluler, jungkirbalikkan skema ini, dan berikan pendekatan pertama-seluler. Gunakan min-device-width
dalam kasus itu. Ini akan mempercepat rendering halaman web untuk browser seluler.