Tüm blog yazıları

CSS'te Özgüllük (Specificity) Nedir?

CSS kullanırken bazen yazdığımız stillerin uygulanmadığını veya beklediğimizden farklı sonuçlar verdiğini fark ederiz. Bunun temel sebeplerinden biri, CSS'teki özgüllük (specificity) kavramıdır. Özgüllük, tarayıcının hangi CSS kuralını uygul

eminbasbayan4 dk okuma
CSS'te Özgüllük (Specificity) Nedir?

CSS kullanırken bazen yazdığımız stillerin uygulanmadığını veya beklediğimizden farklı sonuçlar verdiğini fark ederiz. Bunun temel sebeplerinden biri, CSS'teki özgüllük (specificity) kavramıdır. Özgüllük, tarayıcının hangi CSS kuralını uygulayacağına karar vermesini sağlar. Peki, bu nasıl çalışır? Gelin, detaylıca inceleyelim.

CSS’te Özgüllük Nedir?

Bir HTML öğesine birden fazla CSS kuralı uygulanabiliyorsa, tarayıcı hangi kuralın geçerli olacağına karar vermek için özgüllüğü hesaplar. Daha spesifik olan kural, diğerlerine baskın gelir ve uygulanır.

Basit Bir Örnek

css
p {
    color: blue;
}

p {
    color: orange;
}

Yukarıdaki kodda, aynı öğeye (p) iki farklı renk uygulanmaya çalışılıyor. Burada geçerli olan kural son yazılan olur. Yani color: orange; kuralı, color: blue; kuralının üzerine yazılır ve p etiketi turuncu renkte görüntülenir.

Ancak iş farklı türde seçiciler kullanıldığında biraz daha karmaşık hale gelir. Örneğin:

css
a:hover {
    text-decoration: underline;
}

.menu a:hover {
    text-decoration: none;
}

Bu kodda, .menu sınıfı içindeki bağlantılara farklı bir stil uygulanmaya çalışılıyor. Normalde tüm bağlantılara hover olduğunda altı çizili stil verilmiş. Ancak .menu sınıfı içindeki bağlantılara altı çizgisiz stil verilmiş. Burada hangi stilin uygulanacağına tarayıcı özgüllük hesaplaması yaparak karar verir.

Özgüllük Nasıl Hesaplanır?

CSS'te özgüllük hesaplanırken üç ana bileşen dikkate alınır:

  1. ID Seçicileri (#id) – En güçlü seçicidir.
  2. Class ve Pseudo-Class Seçicileri (.class, :hover, [attribute]) – Orta seviyede spesifik seçicilerdir.
  3. Element ve Pseudo-Element Seçicileri (h1, p, ::before) – En düşük özgüllüğe sahiptir.

Özgüllük şu şekilde puanlanır:

  • ID seçicileri → 100 puan
  • Class, attribute ve pseudo-class seçicileri → 10 puan
  • Element ve pseudo-element seçicileri → 1 puan

Örnek Özgüllük Hesaplamaları

Aşağıdaki tabloda farklı CSS seçicilerinin özgüllük puanları verilmiştir:

CSS SeçiciBeklenen Özgüllük Puanı
h1(0,0,1) → 1
.container h2(0,1,1) → 11
#header h2(1,0,1) → 101
div span.highlight(0,1,2) → 12
#unique(1,0,0) → 100
.box1.box2.box3.box4.box5.box6.box7.box8.box9.box10(0,10,0) → 100
!importantGeçerli özgüllüğü aşar

Burada en yüksek özgüllüğe sahip olan kural uygulanacaktır.

Bağlantılı Seçiciler ve Özgüllük

Seçiciler birbirine bağlandığında özgüllük artar. Örneğin:

css
span.highlight {
    background-color: yellow;
}
div span.highlight {
    background-color: lightgray;
}

Burada div span.highlight seçicisi daha spesifik olduğu için açık gri arka plan kazanır. Çünkü div span.highlight, hem bir element seçicisi hem de bir class seçicisi içerir.

Özgüllükle İlgili Yanılgılar

  1. Daha fazla element eklemek özgüllüğü arttırmaz

    css
    section section section div p {
        font-size: 18px;
    }

    Yukarıdaki gibi gereksiz uzun seçiciler yazmak, özgüllüğü pek artırmaz. Bunun yerine daha anlamlı ve etkili seçiciler kullanılmalıdır.

  2. 10 tane class seçici eklemek, 1 tane ID seçicisini geçmez

    css
    .box1.box2.box3.box4.box5.box6.box7.box8.box9.box10 {
        border: 2px solid green;
    }
    #unique {
        border: 2px solid black;
    }

    Burada ID seçicisi daha güçlü olduğu için öğe siyah kenarlıkla görüntülenecektir.

CSS Özgüllük Sorunlarıyla Nasıl Başa Çıkılır?

1. !important Kullanımı

Bazı durumlarda bir stilin kesinlikle uygulanmasını istiyorsanız, !important ekleyebilirsiniz.

css
h3 {
    font-size: 24px !important;
}

Ancak !important kullanımı önerilmez! Çünkü sonradan düzenleme yaparken !important içeren bir kuralı geçersiz kılmak zor olur.

2. Daha Özgün Seçiciler Kullanma

Eğer p { color: red; } gibi bir kuralınız çalışmıyorsa, daha spesifik bir seçici kullanabilirsiniz.

css
.article p {
    color: red;
}

Böylece sadece .article içindeki <p> öğeleri etkilenir.

3. CSS Dosya Düzeni ve Metodolojiler Kullanma

Özgüllük karmaşasını önlemek için BEM metodolojisi gibi kuralları kullanabilirsiniz.

Örnek:

css
.button--primary {
    background-color: blue;
}

.button--secondary {
    background-color: gray;
}

Bu tarz düzenli bir yapı, CSS’in karmaşasını önlemeye yardımcı olur.

4. Tarayıcı Geliştirici Araçlarını Kullanma

Eğer CSS'iniz uygulanmıyorsa, tarayıcı geliştirici araçları (Chrome DevTools, Firefox Developer Tools) ile hangi CSS kuralının geçerli olduğunu görebilirsiniz.

İpuçları:

  • Ctrl + Shift + I (Windows) veya Cmd + Option + I (Mac) tuşlarına basarak DevTools’u açabilirsiniz.
  • "Computed" sekmesine bakarak hangi stilin uygulandığını kontrol edebilirsiniz.

Sonuç

  • CSS'te özgüllük, hangi stilin uygulanacağını belirleyen önemli bir kuraldır.
  • ID seçicileri en güçlüdür, ardından class ve element seçicileri gelir.
  • Son yazılan kural geçerli olur, ancak daha özgün seçiciler varsa onlar kazanır.
  • Eğer bir CSS stiliniz uygulanmıyorsa, tarayıcı geliştirici araçlarını kullanarak hangi kuralların geçerli olduğunu kontrol edebilirsiniz.

Özgüllük kavramını iyi anlamak, CSS yazarken yaşanabilecek pek çok sorunu önlemenizi sağlar.

Şimdi pratik yapma zamanı!

CSS Flexbox: Order Nedir?
CSS Dersleri2 dk okuma

CSS Flexbox: Order Nedir?

Flexbox, web sayfalarında öğeleri esnek ve düzenli bir şekilde hizalamamızı sağlar. Flexbox’ın sunduğu en ilginç özelliklerden biri de order özelliğidir. Peki order tam olarak ne işe yarar?

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele