CSS Özgüllük
Seçici yazmayı biliyorsunuz. Gerçek stillerde kurallar çarpışır: iki kural aynı öğeyi ve aynı özelliği hedefler. Tarayıcı rastgele seçmez — özgüllüğe (specificity) bakar; ağırlık eşitse dosyadaki sıraya.
Özgüllük ne demek?
Özgüllük, tarayıcının seçiciye verdiği ağırlıktır. Çatışmada o özellik için daha ağır seçici kazanır. Günlük iş için şu merdiveni ezberleyin: satır içi stil > id > class (ve öznitelik / pseudo-sınıf) > element (ve pseudo-öğe). * ve birleştiriciler tek başına ağırlık eklemez.
Sıralama bir bakışta
Önce bu sırayı öğrenin. Daha fazla ayrıntı var ama çoğu yeni başlayan çıkmazı bu merdivenle çözülür.
📊 CSS özgüllük sıralaması (günlük)
| Tür | Örnekler | Genelde yenilgiye uğratır |
|---|---|---|
| Satır içi stil | style="color: red" |
Stil sayfasındaki neredeyse her şey |
| Id | #hero, #nav |
Class ve elementler |
| Class / öznitelik / pseudo-sınıf | .card, [type="email"], :hover |
Element seçicileri |
| Element / pseudo-öğe | p, h1, ::before |
Yalnızca daha zayıf veya eşit kurallar (sonra kaynak sırası) |
class, element’ten güçlüdür
Etiket seçicisi geniştir. Class daha kesindir — class rengi kazanır. Sıra yalnızca ağırlıklar eşitken önemlidir.
class, element’i yener
cssp {
color: #334155;
}
.note {
color: #0f766e;
}
Çatışmayı nasıl okuruz?
<p class="note"> için ikisi de uyar. .note class’tır; p element. Class kazanır → teal metin.
id, class’tan güçlüdür
Id, class’tan daha ağırdır. Yeniden kullanılabilir görünüm için class tercih edin; id’yi benzersiz kanca için saklayın.
id, class’ı yener
css.note {
color: #0f766e;
}
#title {
color: #9f1239;
}
Neden önemli?
<h1 id="title" class="note"> bordo olursa id kazandı — «önemli hissetmekten» değil, daha yüksek ağırlıktan.
Eşit ağırlık → sonraki kural kazanır
İki kuralın özgüllüğü aynıysa, o özellik için CSS’te daha sonra gelen kazanır.
Aynı ağırlık — kaynak sırası karar verir
css.card {
border-color: #cbd5e1;
}
.card {
border-color: #0f766e;
}
Beraberlikte alışkanlık
Her iki seçici de bir class. İkinci .card kuralı kazanır → teal kenarlık. İlk rengi istiyorsanız daha güçlü bir seçicinin de uymadığını kontrol edin.
Birleşik seçiciler pratikte
Seçiciler birleşir: nav a.button:hover, yalnız a’dan daha güçlüdür çünkü class ve pseudo-sınıf ekler. Her satırda hesap makinesi gerekmez — sorun: «Id var mı? Ekstra class? Yoksa yalnızca etiketler?»
Birleşik seçici çıplak element’i yener
cssa {
color: #334155;
}
nav a.button {
color: #0f766e;
}
!important hakkında
!important normal özgüllüğü aşabilir. Yangın söndürücü, günlük alet değil. Aşırı kullanım sonraki değişiklikleri zorlaştırır. Önce yapı ve daha net seçiciler.
İyi alışkanlıklar
- Görünüm için class; id benzersiz kanca için
- Takıldınız mı? Her seçici merdivenin hangi basamağında?
- Eşit ağırlık → dosyada sonraki kurala bakın
- Yalnızca «kazanmak» için uzun zincir kurmayın — HTML değişince kırılır
!important’i sona bırakın, başa değil
Kendiniz deneyin
- Sayfa:
<p class="note">Merhaba</p>,<h1 id="title" class="note">Başlık</h1>ve<nav>içinde<a class="button">Git</a>. - Element–class çifti (
pgri,.noteteal) — note paragrafı teal olsun. #title { color: #9f1239; }ekleyin —.note’a rağmen başlık bordo.- İki
.cardkuralıborder-coloriçin — ikincisi kazansın. - İsteğe bağlı: nav bağlantısında
a { … }ilenav a.button { … }karşılaştırın.
Sık hatalar
- «Daha fazla bildirim» özgüllüğü artırır sanmak — artırmaz
- Son dosyanın her zaman id’yi yendiğini varsaymak — daha yüksek ağırlık hâlâ kazanır
#herşeyveya!important’i varsayılan çözüm yapmak- Basamakları karıştırmak (class’ı element gibi görmek)
- Eşit ağırlığın kaynak sırasına döndüğünü unutmak
Özet
- Özgüllük aynı özellikteki çatışmayı çözer
- Günlük merdiven: inline > id > class/öznitelik/pseudo-sınıf > element/pseudo-öğe
- Eşit ağırlık → sonraki kural
- Görünüm için class; id ve
!importantseyrek - Önce basamak, sonra sıra
- Kazanan açık olana kadar
p/.note/#titleile pratik yapın
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek