CSS Dersleri

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

eminbasbayan

eminbasbayan

4 dk okuma
CSS'te Özgüllük (Specificity) Nedir?
🔍 Büyütmek için tıklayın

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

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:

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:

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

    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

    .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.

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.

.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:

.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ı!

Etiketler

#Eğitimler#CSS Dersleri

İlgili Yazılar

Bu konuyla ilgili diğer yazılarımızı da inceleyebilirsiniz

CSS Nedir?
Genel

CSS Nedir?

### CSS Nedir? Web geliştirme dünyasında, bir web sayfasını hem işlevsel hem de görsel olarak etkileyici hale getirmek önemli bir adımdır. HTML bir web sayfasının iskeletini oluştururken, **CSS (Cascading Style Sheets)** ise bu iskeleti görsel bi

3 dk
HTML Sayfalarına CSS Eklemek
Genel

HTML Sayfalarına CSS Eklemek

CSS (Cascading Style Sheets), bir web sayfasının görünümünü ve düzenini kontrol etmemize olanak tanır. Ancak, CSS yazmaya başlamadan önce, bu stilleri **nerede** ve **nasıl** yazacağımızı öğrenmek önemlidir. Bu yazıda, CSS’i HTML sa

4 dk
CSS Color ve Background-Color
Genel

CSS Color ve Background-Color

CSS, bir web sayfasının görselliğini tamamen değiştirebileceğimiz güçlü bir araçtır. Bu yazıda, CSS’in en temel ve yaygın olarak kullanılan özelliklerinden ikisi olan `color` ve `background-color` özelliklerini inceleyeceğiz. Yeni başlayanlar için bu ö

4 dk
CSS Hexadecimal Renkler
Genel

CSS Hexadecimal Renkler

CSS'te renkleri tanımlamak için kullanılan birçok yöntem bulunmaktadır. Bunlardan biri de **hexadecimal** renklerdir. Hexadecimal renkler, RGB (kırmızı, yeşil, mavi) renk modeline dayanır ve web geliştirme dünyasında oldukça yaygın bir şekilde k

4 dk
CSS Metin Özellikleri
Genel

CSS Metin Özellikleri

CSS ile metinleri şekillendirmek, bir web sayfasını hem görsel açıdan daha çekici hale getirir hem de okunabilirliğini artırır. Bu yazıda, metinleri hizalamak, kalınlaştırmak, süslemek ve aralarındaki boşlukları kontrol etmek gibi yaygın CSS özelliklerini detaylı bir şekilde ele alacağız. Yazı

3 dk
CSS font-size Kullanımı
Genel

CSS font-size Kullanımı

CSS ile metinlerin boyutunu kontrol etmek için kullanılan özellik **`font-size`** özelliğidir. Bu özellik, web sayfanızdaki yazıların boyutunu belirlemenize olanak tanır. Yazı boyutunu ayarlamak oldukça basittir, ancak CSS’te boyutlar için ku

4 dk