Lebih
Pertanyaan Media: Bagaimana target desktop, tablet dan mobile?
Saya telah melakukan beberapa penelitian tentang pertanyaan media dan aku masih don't cukup memahami bagaimana untuk menargetkan perangkat dari ukuran-ukuran tertentu.
Saya ingin bisa untuk target desktop, tablet dan mobile. Aku tahu bahwa akan ada beberapa perbedaan, tapi itu akan menyenangkan untuk memiliki sistem generik yang dapat digunakan untuk menargetkan perangkat ini.
Beberapa contoh yang telah saya temukan:
# Mobile
only screen and (min-width: 480px)
# Tablet
only screen and (min-width: 768px)
# Desktop
only screen and (min-width: 992px)
# Huge
only screen and (min-width: 1280px)
Atau:
# Phone
only screen and (max-width:320px)
# Tablet
only screen and (min-width:321px) and (max-width:768px)
# Desktop
only screen and (min-width:769px)
Apa yang anda pikir ini 'breakpoints' harus sama untuk masing-masing perangkat?
429
15
IMO ini adalah yang terbaik breakpoints:
Edit: Halus untuk bekerja lebih baik dengan 960 grid:
Dalam prakteknya, banyak desainer mengkonversi piksel untuk ems, sebagian besar b/c ems baik mampu zooming. Di zoom standar
1em === 16px
. Kalikan piksel dengan1em/16px
untuk mendapatkan ems. Misalnya,320px === 20em
.Dalam menanggapi komentar,
min-width
adalah standar di "ponsel-pertama" desain, di mana anda mulai dengan merancang untuk layar terkecil, dan kemudian tambahkan terus meningkat media query, bekerja dengan cara anda ke yang lebih besar dan layar yang lebih besar. Terlepas dari apakah anda sukaimin
,max
, atau kombinasi daripadanya, menjadi sadar dari urutan aturan anda, menjaga dalam pikiran bahwa jika beberapa aturan pertandingan unsur yang sama, kemudian aturan-aturan yang akan menggantikan aturan sebelumnya.Jika anda ingin menargetkan perangkat kemudian hanya menulis
min-device-width
. Misalnya:Untuk iPhone
Untuk tablet
Berikut ini adalah beberapa artikel yang baik:
Don't target spesifik perangkat atau ukuran!
Umum kebijaksanaan tidak untuk menargetkan perangkat tertentu atau ukuran, tapi untuk membingkai istilah 'breakpoint':
Anda dapat menggunakan responsivepx.com untuk menemukan 'alam' breakpoints, seperti dalam 'breakpoints mati' oleh Marc Drummond.
Alami menggunakan breakpoints
The 'breakpoints' kemudian menjadi sebenarnya titik di mana ponsel anda desain mulai 'break' yaitu berhenti untuk dapat digunakan atau visual menyenangkan. Setelah anda memiliki situs mobile, tanpa media query, anda dapat berhenti khawatir tentang ukuran tertentu dan hanya menambahkan pertanyaan media yang menangani berturut-turut lebih besar viewports.
Jika anda're tidak mencoba untuk menyematkan desain yang sama ukuran layar, pendekatan ini bekerja dengan menghilangkan kebutuhan untuk menargetkan perangkat tertentu. The integritas dari desain itu sendiri di masing-masing breakpoint memastikan bahwa hal itu akan terus hingga di setiap ukuran. Dengan kata lain, jika menu/bagian konten/apapun berhenti yang dapat digunakan pada ukuran tertentu, desain breakpoint untuk yang ukuran, tidak untuk perangkat tertentu size.
Lihat Lyza Gardner's posting di perilaku breakpoints, dan juga Zeldman's posting tentang Ethan Marcotte dan bagaimana desain web yang responsif berevolusi dari intitial ide.
Menggunakan markup semantik
Lebih lanjut, sederhana dan lebih semantik struktur DOM dengan
nav
,header
,utama
,bagian
,footer
dll. (menghindari kekejian sepertidiv class="header"
dengan nested dalamdiv
kategori) akan lebih mudah untuk insinyur responsiveness, terutama menghindari mengapung dengan menggunakan CSS Grid Layout (Sarah Drasner's grid generator adalah alat yang hebat untuk ini) dan flexbox untuk mengatur dan kembali memesan sesuai dengan RWD rencana desain.Saya telah menggunakan ini situs untuk menemukan resolusi dan dikembangkan CSS per angka-angka yang sebenarnya. Nomor saya bervariasi sedikit dari jawaban diatas, kecuali bahwa saya CSS sebenarnya adalah perangkat yang diinginkan.
Juga, ini memiliki debugging bagian kode setelah media query e.g:
@media only screen and (min-width: 769px) and (max-width: 1281px) { / untuk tablet 10 inci layar / tubuh::before { isi: "tablet untuk beberapa desktop media query (769 > 1281) dipecat"; font-weight: bold; display: block; text-align: center; latar belakang: rgba(255, 255, 0, 0.9); / Semi-transparan kuning / position: absolute; top: 0; kiri: 0; kanan: 0; z-index: 99; } }
Tambahkan ini debugging item di setiap media query dan anda akan melihat apa yang query telah diterapkan.
Terbaik breakpoints direkomendasikan oleh Twitter Bootstrap
Media queries untuk umum perangkat breakpoints
It's tidak masalah pixel count, it's masalah sebenarnya ukuran (dalam mm atau inci) dari karakter-karakter di layar, yang tergantung pada pixel density. Oleh karena itu "min-width:" dan "max-width:" tidak ada gunanya. Penjelasan lengkap tentang masalah ini di sini: https://stackoverflow.com/questions/8785643/what-exactly-is-device-pixel-ratio
"@media" pertanyaan memperhitungkan piksel menghitung dan perangkat rasio pixel, sehingga di "virtual resolusi" yang adalah apa yang anda harus benar-benar memperhitungkan sementara merancang halaman anda: jika anda font 10px fixed-width dan "virtual resolusi horizontal" adalah 300 px, 30 karakter yang akan dibutuhkan untuk mengisi garis.
Karena ada banyak menyesuaikan ukuran layar yang selalu berubah dan kemungkinan besar akan selalu mengubah cara terbaik untuk pergi adalah untuk pilihan anda break point dan media pertanyaan pada desain anda.
Cara termudah untuk pergi tentang ini adalah untuk ambil anda selesai desain desktop dan buka di browser web anda. Psikiater layar perlahan-lahan untuk membuatnya lebih sempit. Mengamati untuk melihat ketika desain mulai, "break", atau terlihat buruk dan sempit. Pada titik ini titik istirahat dengan media query akan diperlukan.
It's yang umum untuk membuat tiga set pertanyaan media untuk desktop, tablet dan ponsel. Tapi jika desain anda terlihat baik di semua tiga, mengapa repot-repot dengan kompleksitas menambahkan tiga media yang berbeda pertanyaan yang tidak perlu. Lakukan hal ini pada dasar yang dibutuhkan!
Perilaku tidak berubah pada desktop. Tapi pada tablet dan ponsel, saya memperluas navbar untuk menutupi besar gambar logo. Catatan: Menggunakan margin (atas dan bawah) sebanyak yang anda butuhkan untuk logo anda tinggi.
Untuk kasus saya, 60px atas dan bawah bekerja dengan sempurna!
Periksa navbar di sini.
Saat ini hal yang paling umum adalah untuk melihat retina layar perangkat, dengan kata lain: perangkat dengan resolusi tinggi dan kepadatan pixel sangat tinggi (tetapi biasanya lebih kecil dari 6 inci ukuran fisik). Yang's mengapa anda akan perlu retina display berupa media query pada CSS anda. Ini adalah contoh lengkap yang bisa saya temukan:
Sumber: CSS-Tricks Website
Salah satu fitur tambahan adalah anda juga dapat menggunakan media queries media atribut
<link>
tag.Dengan ini, browser akan men-download semua sumber daya CSS, terlepas dari media atribut. Perbedaan adalah bahwa jika media-query dari media atribut yang dievaluasi palsu itu .file css dan konten nya tidak akan di-render-blocking.
Oleh karena itu, dianjurkan untuk menggunakan media atribut di
<link>
tag karena itu adalah pengalaman pengguna yang lebih baik.Di sini anda dapat membaca Google artikel tentang masalah ini https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Beberapa alat yang akan membantu anda untuk mengotomatisasi pemisahan kode css anda dalam berbagai file yang menurut anda media-querys
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
PostCSS https://www.npmjs.com/package/postcss-extract-media-query
Saya menggunakan satu berikut untuk melakukan pekerjaan saya.