CSS @media aturan
- halaman sebelumnya max-width
- halaman berikutnya min-block-size
Definisi dan penggunaan
@media aturan digunakan dalam media query untuk menerapkan gaya yang berbeda untuk media type/permintaan yang berbeda.
Media query dapat digunakan untuk memeriksa banyak hal, seperti:
- Lebar dan tinggi viewport
- Lebar dan tinggi perangkat
- Orientasi (apakah ponsel atau tablet berada dalam mode landscape atau portrait?)
- Resolusi
Penggunaan media query adalah teknologi populer untuk menyediakan gaya yang disesuaikan untuk desktop, laptop, tablet dan ponsel (desain halaman responsif).
Anda dapat menggunakan media query untuk menentukan gaya yang hanya berlaku untuk dokumen yang dicetak atau pengguna siaran suara (mediatype: print, screen atau speech).
Selain jenis media, ada juga karakteristik media. Karakteristik media menyediakan detil yang lebih spesifik untuk media query dengan memungkinkan tes khusus kepada karakteristik spesifik dari agen penggunaan media atau perangkat tampilan. Contohnya, Anda dapat menerapkan gaya hanya untuk layar yang lebar lebih besar atau lebih kecil dari tingkat spesifik.
Lihat juga:
Tutorial CSS:Query Media CSS
Tutorial CSS:Contoh media query CSS
Tutorial RWD:Melalui media query untuk merancang web responsif
Panduan referensi JavaScript:Metode window.matchMedia()
Contoh
Contoh 1
Jika lebar jendela browser adalah 600px atau lebih kecil, ganti warna latar belakang elemen <body> menjadi 'cerah biru':
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Anda dapat menemukan lebih banyak contoh TIY di bawah halaman.
Syarat CSS
@media not|only mediatype and (mediafeature and|or|not mediafeature) { Kode CSS; }
Arti kata kunci not, only, dan and:
not: kata kunci not sebaliknya akan mengubah makna seluruh media query.
only: kata kunci only dapat mencegah browser versi lama mengaplikasikan gaya yang ditentukan, yang tidak mendukung media query dengan karakteristik media. Ini tidak mempengaruhi browser modern.
dan: kata kunci and akan menggabungkan karakteristik media dengan jenis media atau karakteristik media lainnya.
Mereka semua adalah opsional. Namun, jika menggunakan not atau only, maka jenis media harus disebutkan.
Anda juga dapat menggunakan stylesheet yang berbeda untuk media yang berbeda, seperti ini:
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> ....
Jenis media
Nilai | Deskripsi |
---|---|
all | Bawaan. Digunakan untuk semua jenis perangkat media. |
Disebalik layar untuk printer. | |
screen | Disebalik layar komputer, tablet, ponsel cerdas, dan lainnya. |
speech | Disebalik layar bacaan laman web untuk penutur layar. |
Karakteristik media
Nilai | Deskripsi |
---|---|
any-hover |
Apakah ada mekanisme pengecek masukan yang tersedia yang mengijinkan pengguna (seperti mouse) untuk menempatkan kursor di atas elemen? ditambahkan di Media Queries Level 4. |
any-pointer |
Apakah ada perangkat pengecek masukan yang tersedia, seperti pengecek pointer, jika ada, apakah kemesanannya seperti apa? ditambahkan di Media Queries Level 4. |
aspect-ratio | Rasio tinggi lebar viewport (viewport). |
color |
Nilai bit per pixel perangkat output, yang biasa adalah 8, 16, 32 bit. Nilai ini adalah 0 jika perangkat tidak mendukung output warna. |
color-gamut |
Dalam tingkat umum, domain warna yang didukung oleh agen pengguna dan perangkat output. ditambahkan di Media Queries Level 4. |
color-index |
Jumlah entri tabel pencarian warna (color lookup table) perangkat output. Nilai ini adalah 0 jika perangkat tidak menggunakan tabel pencarian warna. |
device-aspect-ratio |
Rasio lebar tinggi perangkat output. Ditinggalkan di Media Queries Level 4. |
device-height |
Tinggi permukaan rendering perangkat output (seperti layar). Ditinggalkan di Media Queries Level 4. |
device-width |
Lebar permukaan rendering perangkat output (seperti layar). Ditinggalkan di Media Queries Level 4. |
display-mode |
Mode tampilan aplikasi, seperti yang ditentukan anggota display di manifest web app. Didefinisikan di spec Web App Manifest. |
forced-colors |
Apakah peralatan agen pengguna menghalangi palet warna? ditambahkan di Media Queries Level 5. |
grid | Apakah perangkat output menggunakan layar grid atau layar point-pixel? |
height | Tinggi viewport (viewport). |
hover |
Apakah mekanisme input utama mengizinkan pengguna menempatkan kursor mouse di atas elemen? ditambahkan di Media Queries Level 4. |
inverted-colors |
Apakah browser atau sistem operasi dasar membalik warna? ditambahkan di Media Queries Level 5. |
light-level |
Tingkat kecerahan lingkungan saat ini. ditambahkan di Media Queries Level 5. |
max-aspect-ratio | Rasio tinggi lebar maksimal area tampilan. |
max-color | Ketebalan maksimal untuk setiap komponen warna perangkat output. |
max-color-index | Jumlah warna maksimal yang dapat ditampilkan oleh perangkat. |
max-height | Tinggi maksimal area tampilan, seperti jendela browser. |
max-monochrome | Ketebalan maksimal untuk setiap 'warna' di perangkat monokrom (grayscale). |
max-resolution | Resolusi maksimal perangkat, digunakan dpi atau dpcm. |
max-width | Lebar maksimal area tampilan, seperti jendela browser. |
min-aspect-ratio | Rasio tinggi lebar minimal area tampilan. |
min-color | Ketebalan minimal untuk setiap komponen warna perangkat output. |
min-color-index | Jumlah warna yang dapat ditampilkan oleh perangkat. |
min-height | Tinggi minimal area tampilan, seperti jendela browser. |
min-monochrome | Ketebalan minimal untuk setiap 'warna' di perangkat monokrom (grayscale). |
min-resolution | resolusi terendah peralatan, menggunakan dpi atau dpcm. |
min-width | lebar minimum area tampilan, seperti jendela browser. |
monochrome |
bit depth per pixel dalam frame buffer monokrom peralatan keluar. jika peralatan bukan layar hitam putih, nilai ini adalah 0. |
orientation | arah putar viewport (mode potong atau mode tinggi). |
overflow-block |
bagaimana peralatan keluar menangani konten yang meluas di sumbu block viewport? ditambahkan di Media Queries Level 4. |
overflow-inline |
apakah konten yang meluas di sumbu inline dapat digerakkan? ditambahkan di Media Queries Level 4. |
pointer |
mekanisme input utama adalah peralatan penunjukkah? Jika ya, kinerja kecepatannya bagaimana? ditambahkan di Media Queries Level 4. |
prefers-color-scheme |
deteksi apakah pengguna menyukai skema warna yang terang atau gelap. ditambahkan di Media Queries Level 5. |
prefers-contrast |
deteksi apakah pengguna meminta meningkatkan atau menurunkan kontras warna yang sama. ditambahkan di Media Queries Level 5. |
prefers-reduced-motion |
apakah pengguna ingin ada lebih sedikit efek gerakan di halaman. ditambahkan di Media Queries Level 5. |
prefers-reduced-transparency |
apakah pengguna menyukai kecerahan yang lebih rendah. ditambahkan di Media Queries Level 5. |
resolution | resolusi peralatan keluar, menggunakan dpi atau dpcm. |
scan | proses pemindai peralatan keluar (untuk TV dll.). |
scripting |
deteksi apakah scripting (contoh JavaScript) tersedia. ditambahkan di Media Queries Level 5. |
update |
kecepatan pembaruan konten render peralatan keluar. ditambahkan di Media Queries Level 4. |
width | lebar viewport (viewport). |
lebih banyak contoh
contoh 2
Jika lebar browser adalah 600px atau kurang, sembunyikan elemen:
@media screen and (max-width: 600px) { div.example { display: none; } }
contoh 3
Jika lebar viewport adalah 800 piksel atau lebar, gunakan media query untuk menetapkan warna latar yang pucat; jika lebar viewport antara 400 hingga 799 piksel, gunakan media query untuk menetapkan warna latar yang kuning ke hijau terang. Jika viewport kurang dari 400 piksel, warna latar adalah biru terang:
body { background-color: lightblue; } @media screen and (min-width: 400px) { body { background-color: lightgreen; } } @media screen and (min-width: 800px) { body { background-color: lavender; } }
contoh 4
Buat menu navigasi responsif (dilihat horisontal di layar besar, dan vertikal di layar kecil):
@media screen and (max-width: 600px) { .topnav a { float: none; width: 100%; } }
contoh 5
Gunakan media query untuk membuat tata letak kolom responsif:
/* Pada layar dengan lebar 992px atau kurang, empat kolom berubah menjadi dua kolom */ @media screen and (max-width: 992px) { .column { width: 50%; } } /* Pada layar dengan lebar kurang dari atau sama dengan 600 pixel, kolom berada di atap-tapak, bukannya di halaman paralel */ @media screen and (max-width: 600px) { .column { width: 100%; } }
contoh 6
Gunakan media query untuk membuat situs responsif:
contoh 7
Media query juga dapat digunakan untuk mengubah tata letak halaman berdasarkan orientasi browser. Anda dapat menulis sekumpulan properti CSS yang hanya berlaku saat lebar jendela browser lebih besar daripada tingginya (yaitu orientasi landscape).
Jika orientasi berada di mode landscape, gunakan warna latar belakang biru muda:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
contoh 8
Gunakan media query untuk menetapkan warna teks menjadi hijau saat dokumen ditampilkan di layar, dan hitam saat dicetak:
@media screen { body { color: green; } } @media print { body { color: black; } }
contoh 9
daftar yang dipisahkan koma: gunakan koma untuk menambah media query lain ke dalam media query yang sudah ada (pernyataannya mirip dengan operator OR):
/* Saat lebar antara 600px dan 900px atau lebih besar daripada 1100px - ubah penampilan <div> */ @media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px) { div.example { font-size: 50px; padding: 50px; border: 8px solid black; background: yellow; } }
dukungan browser
Angka di tabel menunjukkan versi pertama browser yang mendukung @media aturan.
Chrome | IE / Edge | Firefox | Safari | Opera |
---|---|---|---|---|
21 | 9 | 3.5 | 4.0 | 9 |
- halaman sebelumnya max-width
- halaman berikutnya min-block-size