CSS Responsive Media Query

Apa itu media query? Media query adalah fitur yang tersedia di CSS3 untuk memberikan style khusus dengan suatu kondisi tertentu.

Kondisi tertentu tersebut misalnya ukuran layar.

Contoh media query, yang mengatur style jika resolusi layar kurang dari 768px maka warna body diganti merah.

@media only screen and (max-width: 768px) {
  body {
    background-color: red;
  }
}

Media types

Ada empat tipe media di media query, yaitu:

  • all untuk semua device
  • print untuk media halaman / dokumen
  • screen untuk ukuran layar
  • speech untuk fitur voice

Logical operator

Ada empat operator logika yang bisa digunakan, yaitu:

  • and digunakan untuk jika 2 atau lebih media tipe terpenuhi
  • not jika tidak termasuk media tipe yang dipilih
  • only jika hanya sesuai media type yang dipilih
  • , (koma) menggabungkna banyak operator logika

Media features

ValueKeterangan
widthLebar / panjang viewport
updateSeberapa cepat device dapat memperbarui tampilan konten?
scriptingApakah scripting (js) diperbolehkan?
scanProses scanning 
resolutionResolusi device dengan dpi atau dpcm
pointerApa ada mekanisme input sebagai pointer? Bagaimana akurasinya?
overflow-inlineApa bisa konten yang melebihi garis inline discroll?
overflow-blockBagaimana device mengatasi konten yang melebihi ukuran sepanjang garis blok
orientationOrintasi device (portrait / landscape)
monochromeJumlah bit warna untuk device monokrom
min-widthMinimal panjang viewport
min-resolutionMinimal resolusi viewport
min-monochromeJumlah bit minimal untuk device monokrom
min-heightMinimal tinggi viewport
min-color-indexJumlah warna minimal yang ditampilkan
min-colorJumlah bit minimal tiap komponen warna
min-aspect-ratioMinimal aspek rasio lebar dan tinggi
max-widthMaksimal panjang viewport
max-resolutionMaksimal resolusi viewport
max-monochromeJumlah bit maksimal untuk device monokrom
max-heightMaksimal tinggi viewport
max-color-indexJumlah warna maksimal yang ditampilkan
max-colorJumlah bit maksimal tiap komponen warna
max-aspect-ratioAspek rasio maksimal lebar dan tinggi
light-levelLevel cahaya sekarang
inverted-colorsApa browser ada di mode invert warna?
hoverApa ada cara agar user melakukan hover (mengarahkan kursor) ke elemen?
heightTinggi viewport
gridMengecek apakah perangkat berupa grid atau bitmap
color-indexJumlah warna yang ditampilkan device
color-gamutPerkiraan warna yang disupport device
colorJumlah bit tiap komponen warna untuk device output
aspect-ratioRasio lebar dan tinggi viewport
any-pointerApa ada mekanisme input sebagai pointer? Bagaimana akurasinya?
any-hoverApa ada cara agar user melakukan hover (mengarahkan kursor) ke elemen?

Contoh penggunaan

Kasus 1: menyembunyikan element jika dibuka di laptop (resolusi > 768px)

@media screen and (min-width: 768px) {
  div.contoh {
    display: none;
  }
}

Kasus 2: mengganti warna element, jika smartphone warna merah, jika tablet warna hitam, jika desktop warna biru.

div.contoh {background:red}
@media screen and (min-width: 400px) {
 div.contoh {background:black}
}

@media screen and (min-width: 800px) {
 div.contoh {background:blue}
}

Leave a Comment