Tutorial Belajar CSS Part 7: Urutan Prioritas Selector CSS (Cascading)

Di dalam CSS, sebuah tag bisa memiliki lebih dari dari satu kode CSS. Dalam tutorial mengenal Urutan Prioritas Selector CSS ini kita akan membahas urutan atau prioritas dari kode CSS yang akan dipakai oleh tag HTML, atau dikenal dengan istilah Cascading.


Pengertian Cascading dari CSS

CSS adalah singkatan dari Cascading Style Sheet, dimana cascade dalam bahasa inggris dapat berarti air terjun kecil yang berjatuhan dari atas ke bawah. Di dalam CSS, maksud dari cascading ini adalah style yang dapat ditimpa atau menimpa style lain sesuai urutannya, atau kita sebut saja sebagai prioritas CSS.

Mengenai kata "prioritas" untuk kode CSS, saya akan bagi menjadi 2 bagian, pada artikel ini hanya akan membahas tentang prioritas atau urutan dari kode CSS jika dilihat dari "sumber" kode tersebut. Kita akan menguji prioritas dari external style sheet, internal style sheet, dan inline style CSS. Pada tutorial berikutnya kita akan membahas tentang prioritas CSS dilihat dari kespesifikannya.


Efek Cascading berdasarkan sumber kode CSS

Misalkan kita memiliki sebuah tag header <h2>, lalu ingin membuat kode CSS menggunakan external style sheet untuk merubah tag header tersebut menjadi biru. Namun pada saat yang sama kita  juga membuat internel style sheet untuk mengubahnya menjadi warna merah, maka warna apakah yang akan tampil di browser?

Untuk mengujinya, marilah kita mencobanya secara langsung, langkah pertama, buatlah sebuah file CSS yang akan diimport, misalkan prioritas.css, ketikkan kode CSS berikut:

h2 {
    color:blue;
   }

Lalu sebagai sample HTML, saya menggunakan prioritas.html, savelah kedua file pada folder yang sama:

<!DOCTYPE html>
<html>
<head>
   <title>Contoh Kasus Cascading CSS</title>
   <link rel="stylesheet" type="text/css" href="prioritas.css">         
   <style type="text/css">
            h2 {
               color:red;
               }
    </style>
</head>

<body>
   <h2>
       Akan berwarna apa saya?..1
   </h2>

   <h2 style="color:green">
       Akan berwarna apa saya?..2
   </h2>
</body>
</html>

Perhatikan bahwa sebelum tag <style>, saya "memanggil" file prioritas.css terlebih dahulu. Lalu pada tag <h2> yang kedua saya menambahkan atribut "color:green" pada tag <h2>.

Jika kita menjalankan kode HTML diatas, warna text pada kedua tag <h2> akan bewarna merah dan biru, dan tidak ada yang bewarna biru.

Contoh Urutan Prioritas Selector CSS (Cascading)

Dari contoh sederhana diatas, tag <h2> sebenarnya "dikenakan" atau "diubah" oleh 3 property CSS yang sama secara bersamaan, yakni ketiga selector tersebut ingin mengubah warna text dari tag <h2>, namun hanya ada satu kode yang akan "menang".

Dalam masalah 'timpa-menimpa' ini,  CSS memiliki aturan prioritas tersendiri. Jika terdapat property CSS yang saling 'bentrok',  maka urutan prioritasnya adalah sebagai berikut (dari yang paling kuat):

  1. Inline style, yakni style yang langsung melekat pada tag.
  2. Internal style, yakni style yang dideklarasikan pada awal halaman (tag <style>)
  3. Eksternal style, yakni style yang dideklarasikan pada sebuah file .css , dan dipanggil melalui tag <link> atau @import

Maka jika melihat sekali lagi kode HTML diatas, text "Akan berwana apa saya?..1" akan berwarna merah karena internal style color:red lebih mendapat prioritas lebih tinggi daripada external style color:blue.

Sedangkan text "Akan berwana apa saya?..2" berwarna hijau karena inline style color:green lebih mendapat prioritas daripada external style color:blue maupun internal style color:red.

Selain prioritas antar "sumber" kode CSS tersebut, proses cascading atau prioritas CSS juga masih berlanjut untuk kode CSS dalam file yang sama. Hal ini akan kita bahas pada tutorial selanjutnya Urutan Prioritas Selector CSS (Specificity).


eBook CSS Uncover Duniailkom
Jika anda ingin belajar cara mendesain web, CSS wajib dikuasai. Duniailkom telah menyusun eBook CSS Uncover yang membahas CSS dengan lebih detail dan lebih lengkap, mulai dari dasar hingga fitur terbaru CSS3 seperti animasi dan web responsive. Penjelasan lebih lanjut bisa ke: eBook CSS Uncover Duniailkom.

19 Comments

  1. Khaerul Bahri
    26 Nov 15
    • Andre
      27 Nov 15
    • William
      15 Jan 16
      • Andre
        16 Jan 16
  2. William
    15 Jan 16
    • Andre
      16 Jan 16
  3. fauzan abrar
    29 Mar 16
    • Andre
      29 Mar 16
  4. Aldi Zainafif
    15 Aug 16
    • Andre
      16 Aug 16
  5. Rey andrany
    02 Mar 17
  6. nur
    05 May 17
    • Andre
      05 May 17
    • Andre
      03 Aug 17
  7. ianth
    13 Aug 17
    • Andre
      16 Aug 17
  8. Dimas Novandra Utomo
    27 Aug 17

Add Comment