Ada berbagai cara untuk mengganti properti. Dengan asumsi Anda sudah
.left { background: blue }
misalnya, salah satu dari berikut ini akan menimpanya:
a.background-none { background: none; }
body .background-none { background: none; }
.background-none { background: none !important; }
Dua yang pertama "menang" berdasarkan kekhususan pemilih; yang ketiga menang !important
, instrumen tumpul.
Anda juga bisa mengatur style sheets Anda sehingga misalnya aturannya
.background-none { background: none; }
menang hanya karena urutan, yaitu dengan mengikuti aturan yang sama-sama “kuat”. Tapi ini memberlakukan batasan dan mengharuskan Anda berhati-hati dalam mengatur ulang style sheet.
Ini semua adalah contoh CSS Cascade , sebuah konsep yang penting namun banyak disalahpahami. Ini mendefinisikan aturan yang tepat untuk menyelesaikan konflik antara aturan style sheet.
PS Saya digunakan left
dan background-none
seperti yang digunakan dalam pertanyaan. Mereka adalah contoh nama kelas yang tidak boleh digunakan, karena mencerminkan rendering tertentu dan bukan peran struktural atau semantik.
left
danbackground-none
dihindari?button
,name-label
, dll). Yang lain merasa bahwa CSS menjadi tidak terkendali jika Anda menggunakan pendekatan ini dan Anda harus menggunakan "utilitas-pertama" atau "fungsional" css mana kelas sesuai dengan nilai properti (misalnyamargin-top-4
,width-10
, dll). Secara historis, pendekatan "semantik" telah dominan sementara baru-baru ini pendekatan "fungsional" telah mendapatkan pengikut. Cobalah keduanya pada proyek berukuran sedang dan kemudian putuskan sendiri mana yang lebih unggul.Gunakan saja
!important
itu akan membantu untuk menimpaMeskipun dikatakan sebagai praktik yang buruk,
!important
dapat berguna untuk kelas utilitas, Anda hanya perlu menggunakannya secara bertanggung jawab, periksa ini: Saat Menggunakan yang penting adalah pilihan yang tepatsumber
Anda harus mengganti dengan meningkatkan Kekhususan gaya Anda. Ada berbagai cara untuk meningkatkan Specificity. Penggunaan
!important
yang mempengaruhi kekhususan, adalah praktik yang buruk karena merusak aliran alami di lembar gaya Anda.Diagram berikut yang diambil dari css-tricks.com akan membantu Anda menghasilkan spesifisitas yang tepat untuk elemen Anda berdasarkan struktur poin. Kekhususan mana pun yang memiliki poin lebih tinggi, akan menang. Kedengarannya seperti permainan - bukan?
Lihat contoh penghitungan di sini di css-tricks.com . Ini akan membantu Anda memahami konsep dengan sangat baik dan hanya perlu waktu 2 menit.
Jika Anda kemudian ingin membuat dan / atau membandingkan berbagai kekhususan sendiri, coba Kalkulator Kekhususan ini: https://specificity.keegan.st/ atau Anda dapat menggunakan kertas / pensil tradisional.
Untuk bacaan lebih lanjut cobalah MDN Web Docs .
Semua yang terbaik untuk tidak digunakan
!important
.sumber
Sebagai alternatif dari
important
kata kunci, Anda dapat membuat pemilih lebih spesifik, misalnya:(Catatan: tidak ada spasi di antara nama kelas).
Dalam kasus ini, aturan akan berlaku jika keduanya
.left
dan.background-none
dicantumkan dalam atribut kelas (terlepas dari urutan atau kedekatannya).sumber
Jika Anda membuat daftar
bakground-none
kelas setelah kelas lain, propertinya akan menggantikan yang sudah disetel. Tidak perlu menggunakan di!important
sini.Sebagai contoh:
dan
Tautan tidak akan berlatar belakang merah. Harap perhatikan bahwa ini hanya menimpa properti dengan pemilih yang kurang atau sama spesifiknya.
sumber
LIFO adalah cara browser mem-parsing properti CSS..Jika Anda menggunakan Sass, deklarasikan variabel yang disebut sebagai
gunakan itu alih-alih langsung menetapkan nilai seperti merah atau biru. Bila Anda ingin menimpa, tetapkan kembali nilainya ke
kemudian
seharusnya diganti dengan mulus. Menggunakan "! Penting" tidak selalu merupakan pilihan yang tepat..Itu hanya perbaikan terbaru
sumber