Kalkulator Spesifisitas CSS Online. Visualisator Bobot Selektor

Hitung spesifisitas dan bobot tepat dari selektor CSS apa pun. Alat visual untuk memahami aturan CSS mana yang menang dalam kaskade dan menghindari penggunaan !important.

VS
Selektor ini menang!
0 ID
0 Kelas / Semu
0 Elemen
Selektor ini menang!
0 ID
0 Kelas / Semu
0 Elemen
Kedua selektor memiliki bobot yang sama. Jika mereka bersaing untuk elemen yang sama, yang ditulis terakhir di CSS yang menang.
Studio Utilitas

Ingin utilitas ini di situs Anda?

Sesuaikan warna dan mode gelap untuk WordPress, Notion, atau situs Anda sendiri.

Pertanyaan yang Sering Diajukan

Apa itu spesifisitas CSS?

Spesifisitas adalah algoritma yang digunakan browser untuk memutuskan aturan CSS mana yang diterapkan pada suatu elemen ketika beberapa aturan bersaing. Ini direpresentasikan sebagai skor tiga kolom (A, B, C) yang masing-masing menunjukkan ID, kelas/atribut/kelas semu, dan elemen/elemen semu.

Dapatkah sebuah kelas mengalahkan ID dalam spesifisitas?

Tidak secara langsung. Sebuah ID (1,0,0) selalu mengalahkan sejumlah kelas (0,N,0) karena spesifisitas tidak memiliki peralihan antar kolom. Seratus kelas (0,100,0) tidak akan pernah mengalahkan satu ID pun (1,0,0).

Apa yang terjadi jika dua selektor memiliki spesifisitas yang sama?

Ketika dua selektor memiliki bobot yang persis sama, yang dinyatakan terakhir di file CSS yang menang. Ini dikenal sebagai urutan kaskade alami. Kalkulator ini secara visual memperingatkan Anda ketika terjadi seri.

Mengapa menggunakan !important dianggap sebagai praktik buruk?

Arahan !important merusak kaskade CSS alami dengan memaksa deklarasi atas aturan lainnya. Ini menciptakan konflik yang sulit di-debug dalam proyek besar. Metodologi seperti BEM menyarankan agar spesifisitas tetap datar agar tidak memerlukan !important.

# Apa Itu Spesifisitas CSS?

Spesifisitas CSS adalah algoritma yang digunakan browser untuk memutuskan nilai properti mana yang diterapkan pada elemen tertentu. Ini pada dasarnya adalah skor matematis yang memberi tahu browser "seberapa spesifik" suatu aturan.Jika dua aturan memiliki tingkat spesifisitas yang berbeda, aturan dengan bobot lebih tinggi akan menang, terlepas dari urutan penulisannya. Jika keduanya memiliki bobot yang sama, aturan terakhir yang dinyatakan dalam kode sumber yang menang.

# Cara Menghitung Spesifisitas CSS

Spesifisitas dihitung berdasarkan tiga kategori yang membentuk bobot tiga kolom, sering dinyatakan sebagai (A, B, C):
  • Kolom A (ID): Menghitung jumlah pengidentifikasi unik. Contoh: #header dihitung sebagai 1 di kolom A.
  • Kolom B (Kelas, Atribut, dan Kelas Semu): Menghitung semua kelas (.button), atribut ([type="text"]), dan kelas semu (:hover).
  • Kolom C (Elemen dan Elemen Semu): Menghitung semua elemen HTML (div, h1) dan elemen semu (::before).

# Aturan Emas: Tidak Ada Peralihan Numerik

Aturan dengan spesifisitas (0,50,0) tidak akan pernah lebih spesifik daripada aturan (1,0,0). Satu ID mengalahkan kelas yang tak terhingga jumlahnya. Kolom tidak pernah melimpah satu sama lain.

# Masalah dengan !important dan Arsitektur BEM

Arahan !important adalah pengecualian untuk aturan spesifisitas. Saat digunakan, deklarasi tersebut secara otomatis menimpa yang lain. Ini dianggap sebagai praktik buruk karena merusak kaskade alami.Untuk menghindari perang spesifisitas dalam proyek besar, metodologi seperti BEM menyarankan penggunaan selektor kelas kedalaman tunggal saja, secara artifisial menjaga spesifisitas tetap datar di (0,1,0).

Referencias Bibliográficas