Saya telah melakukan riset tentang pertanyaan media dan saya masih tidak begitu mengerti bagaimana menargetkan perangkat dengan ukuran tertentu.
Saya ingin dapat menargetkan desktop, tablet, dan seluler. Saya tahu bahwa akan ada beberapa perbedaan tetapi akan menyenangkan jika memiliki sistem generik yang dapat digunakan untuk menargetkan perangkat ini.
Beberapa contoh yang 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 harus breakpoint untuk setiap perangkat?
css
mobile
media-queries
tablet
betamax
sumber
sumber
Jawaban:
IMO ini adalah breakpoints terbaik:
Sunting : Disempurnakan agar bekerja lebih baik dengan 960 kisi:
Dalam praktiknya, banyak desainer mengonversi piksel menjadi em, sebagian besar lebih baik memperbesar / memperkecil tampilannya. Pada zoom standar
1em === 16px
. Lipat gandakan piksel dengan1em/16px
untuk mendapatkan ems. Sebagai contoh320px === 20em
,.Menanggapi komentar,
min-width
adalah standar dalam desain "mobile-first", di mana Anda mulai dengan mendesain untuk layar terkecil Anda, dan kemudian menambahkan permintaan media yang semakin meningkat, bekerja menuju layar yang lebih besar dan lebih besar. Terlepas dari apakah Anda lebih sukamin-
,,max-
atau kombinasi daripadanya, waspadai urutan aturan Anda, ingatlah bahwa jika beberapa aturan cocok dengan elemen yang sama, aturan selanjutnya akan menggantikan aturan sebelumnya.sumber
min-width: 320px
css mengesampingkanmin-width: 801px
?Jangan menargetkan perangkat atau ukuran tertentu!
The kebijaksanaan umum adalah untuk tidak menargetkan perangkat atau ukuran tertentu , tetapi untuk membingkai ulang istilah 'breakpoint':
Anda dapat menggunakan responssivepx.com untuk menemukan breakpoint 'alami', seperti pada 'breakpoints dead' oleh Marc Drummond .
Gunakan breakpoint alami
'Breakpoints' kemudian menjadi titik aktual di mana desain ponsel Anda mulai 'pecah' yaitu berhenti digunakan atau menyenangkan secara visual. Setelah Anda memiliki situs seluler yang berfungsi dengan baik, tanpa kueri media, Anda bisa berhenti mengkhawatirkan ukuran tertentu dan hanya menambahkan kueri media yang menangani viewports yang lebih besar secara berturut-turut.
Jika Anda tidak mencoba menyematkan desain ke ukuran layar yang tepat, pendekatan ini berfungsi dengan menghapus kebutuhan untuk menargetkan perangkat tertentu . The integritas desain sendiri pada setiap breakpoint memastikan bahwa hal itu akan terus naik pada ukuran. Dengan kata lain, jika bagian menu / konten / apa pun berhenti dapat digunakan pada ukuran tertentu, desain breakpoint untuk ukuran itu , bukan untuk ukuran perangkat tertentu.
Lihat posting Lyza Gardner tentang breakpoint perilaku , dan juga posting Zeldman tentang Ethan Marcotte dan bagaimana desain web responsif berevolusi dari ide awal.
Gunakan markup semantik
Selanjutnya, sederhana dan lebih semantik struktur DOM dengan
nav
,header
,main
,section
,footer
dll (menghindari perbuatan-perbuatan keji sepertidiv class="header"
dengan inner bersarangdiv
tag) yang akan lebih mudah untuk tanggap insinyur, terutama menghindari mengapung dengan menggunakan CSS Grid Tata Letak (Sarah Drasner ini pembangkit jaringan adalah alat hebat untuk ini) dan flexbox untuk mengatur dan memesan ulang sesuai dengan rencana desain RWD Anda.sumber
Jika Anda ingin menargetkan perangkat maka cukup tulis
min-device-width
. Sebagai contoh:Untuk iPhone
Untuk tablet
Berikut beberapa artikel bagus:
sumber
@media only screen and (min-device-width: 1024){}
atau sesuatu seperti itu untuk mengganti perubahan ini. Atau, Anda bisa melakukannya@media only screen and (MAX-device-width: 1024){}
jika Anda mulai dengan desain desktop dan ingin membuat perubahan hanya untuk hal-hal yang lebih kecil dari 1024.Saya telah menggunakan situs ini untuk menemukan resolusi dan mengembangkan CSS per angka aktual. Angka saya sedikit berbeda dari jawaban di atas, kecuali bahwa CSS saya benar-benar mengenai perangkat yang diinginkan.
Juga, minta kode debugging ini tepat setelah permintaan media Anda mis:
Tambahkan item debug ini di setiap kueri media dan Anda akan melihat kueri apa yang telah diterapkan.
sumber
Breakpoints terbaik yang direkomendasikan oleh Twitter Bootstrap
sumber
Kueri media untuk breakpoint perangkat umum
sumber
sumber
Ini bukan masalah jumlah piksel, ini masalah ukuran aktual (dalam mm atau inci) karakter di layar, yang tergantung pada kerapatan piksel. Karenanya "min-width:" dan "max-width:" tidak berguna. Penjelasan lengkap tentang masalah ini ada di sini: apa sebenarnya rasio piksel perangkat?
"@media" kueri memperhitungkan jumlah piksel dan rasio piksel perangkat, menghasilkan "resolusi virtual" yang harus Anda perhitungkan saat mendesain halaman Anda: jika font Anda 10px lebar-lebar dan " resolusi horisontal virtual "adalah 300 px, diperlukan 30 karakter untuk mengisi satu baris.
sumber
Saat ini yang paling umum adalah melihat perangkat layar retina, dengan kata lain: perangkat dengan resolusi tinggi dan kerapatan piksel sangat tinggi (tetapi biasanya lebih kecil dari 6 inci ukuran fisik). Itu sebabnya Anda akan memerlukan retina menampilkan kueri media khusus pada CSS Anda. Ini adalah contoh paling lengkap yang bisa saya temukan:
Sumber: Situs Web CSS-Trik
sumber
Karena ada banyak ukuran layar yang bervariasi yang selalu berubah dan kemungkinan besar akan selalu mengubah cara terbaik untuk pergi adalah dengan mendasarkan titik istirahat dan pertanyaan media pada desain Anda.
Cara termudah untuk melakukannya adalah dengan mengambil desain desktop Anda yang sudah selesai dan membukanya di browser web Anda. Kecilkan layar secara perlahan agar lebih sempit. Amati untuk melihat kapan desain mulai, "pecah" , atau terlihat mengerikan dan sempit. Pada titik ini diperlukan break point dengan permintaan media.
Sudah biasa membuat tiga set kueri media untuk desktop, tablet, dan ponsel. Tetapi jika desain Anda terlihat bagus pada ketiganya, mengapa repot dengan kompleksitas menambahkan tiga kueri media yang berbeda yang tidak perlu. Lakukan sesuai kebutuhan!
sumber
Satu fitur tambahan adalah Anda juga dapat menggunakan kueri media dalam atribut media dari
<link>
tag.Dengan ini, browser akan mengunduh semua sumber daya CSS, terlepas dari atribut media . Perbedaannya adalah bahwa jika kueri media dari atribut media dievaluasi menjadi false, maka file .css dan kontennya tidak akan diblokir.
Oleh karena itu, disarankan untuk menggunakan atribut media dalam
<link>
tag karena itu menjamin pengalaman pengguna yang lebih baik.Di sini Anda dapat membaca artikel Google tentang masalah ini https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Beberapa alat yang akan membantu Anda untuk mengotomatiskan pemisahan kode css Anda dalam file yang berbeda sesuai dengan pertanyaan media Anda
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
sumber
Perilaku tidak berubah di desktop. Tetapi pada tablet dan ponsel, saya memperluas navbar untuk menutupi gambar logo besar. Catatan: Gunakan margin (atas dan bawah) sebanyak yang Anda butuhkan untuk tinggi logo Anda.
Untuk kasus saya, 60px atas dan bawah bekerja dengan sempurna!
Periksa navbar di sini .
sumber
sumber
Saya menggunakan yang berikut untuk melakukan pekerjaan saya.
sumber
sumber