Penggunaan !important di CSS


Apakah pendeklarasian !important di CSS diperlukan? Apakah CSS kita akan ‘bekerja’ sesuai dengan yang kita inginkan kalau !important tidak dideklarasikan?

Jawabannya simple, tergantung. Pendeklarasian !important sebenarnya tidak terlalu diperlukan di beberapa bagian. Tapi di beberapa hal, memang terkadang harus dipergunakan. Misalnya di utility classes atau di print style.

Important artinya penting dalam bahasa indonesia. Buat yang belum tahu, !important di CSS biasanya dipergunakan untuk deklarasi style yang sifatnya sangat penting. Walaupun setelahnya ada pendeklarasian style yang juga mengubah selector yang sama. Mungkin agak susah dipahami, tapi sedikit contoh mungkin akan membantu.

Tanpa !important

CSS

h1 { color: #ff425f; }
.black-text { color: #000; }

HTML

<h1 class="black-text">Test</h1>

Hasil:

Tanpa !important

Dengan !important

CSS

h1 { color: #ff425f !important; }
.black-text { color: #000; }

HTML

<h1 class="black-text">Test</h1>

Hasil:

Dengan !important

Pada contoh di atas, kita menyatakan bahwa h1 hurufnya berwarna pink dan black-text hurufnya berwarna hitam. Saat kita menggunakan 2 selector tersebut di 1 elemen, keduanya bisa menghasilkan sesuatu yang berbeda.

Pada contoh pertama, warna pink di h1 tidak ‘bekerja’ sesuai dengan yang kita nyatakan sebelumnya karena class black-text di deklarasikan setelahnya. Sehingga teks yang dihasilkan berwarna hitam.

Sedangkan pada contoh kedua, teks tetap berwarna pink karena kita mendeklarasikan !important. Walaupun setelahnya ada class black-text tapi karena pendeklarasian !important jadi teks tetap berwarna pink.

Pendeklarasian !important tidak diwajibkan. Bahkan menurut gue sangat tidak dianjurkan. Karena kalau setelahnya kita juga melakukan styling terhadap suatu elemen bisa saja deklarasi kita tidak dipergunakan oleh browser kecuali kita menyatakan !important di deklarasi kita.

Di beberapa hal, deklarasi !important memang kadang sangat diperlukan. Sejauh ini gue menggunakan !important di beberapa utility class. Beberapa contoh:

.hidden, .visible-print { display: none !important; }
.list-no-style { list-style: none !important; }

Dan di print style juga diperlukan, agar saat di print deklarasi yang kita nyatakan memang benar-benar ‘bekerja’ sebagaimana mestinya, contoh:

@media print {
  /* html5boilerplate */
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  img {
    max-width: 100% !important;
  }
  /* bootstrap */
  .hidden-print {
    display: none !important;
  }
  .visible-print {
    display: block !important;
  }
}

Sudah paham kan? Sebenarnya pertanyaan diatas mendadak muncul beberapa bulan yang lalu tapi baru bisa dituliskan sekarang karena agak susah juga untuk menjelaskannya. Setelah beberapa bulan, penjelasannya tetap aja berantakan. Mohon maaf ya kalau agak susah dipahami.

Post Lainnya

Pendapat Saya Tentang Wordpress

Setelah sebelumnya saya membahas tentang blogging secara umum dan Medium, Sekarang saya akan beralih ke pembahasan mengenai blogging engine yang self-hosted. Kali ini saya secara khusus membahas mengenai Wordpress.org, bukan Wordpress.com. Walau perbedaannya mungkin terlihat hanya sebatas itu, tapi self-hosted Wordpress jauh lebih powerfull daripada Wordpress yang tersedia sebagai service.

Alasan Saya Masih Melakukan Rooting

Sebuah pertanyaan kecil muncul di kepala saya saat pertama kali membaca tentang fitur-fitur MIUI 7. Apakah Rooting masih diperlukan ? Dulu saya melakukan rooting di Samsung Galaxy Y GT-S5360 untuk mengakali jumlah memory yang terlalu sedikit. Lalu seiring berjalannya waktu semakin banyak penggunaan saya yang membutuhkan hak akses root di Android saya. Backup, cleaning, menghapus bloatware, memasang tweak dan mod, dan lain-lain.

Say Hello to jekyll-boilerplate

Beberapa minggu yang lalu saya membaca ulang dokumentasi Jekyll. Mulai dari bagian ‘Welcome’ sampai habis. Sebuah pertanyaan muncul di kepala saya. Bagaimana kalau pengguna yang awam, yang belum memahami banyak tentang Jekyll, mencoba untuk memakai layanan seperti Prose atau markdown-writer (sebuah package untuk Atom) ?

Komentar

Komentar akan tampil setelah diterima.