CSS Seçiciler
Bir CSS kuralının iki işi vardır: kimi biçimlendireceğini belirlemek ve nasıl biçimlendireceğini söylemek. “Nasıl” kısmını property, değer ve birimlerle zaten çalıştınız. Bu oturumda “kimi” kısmına odaklanıyoruz: kuralın başındaki seçici (selector).
CSS seçiciler nedir?
Seçici, tarayıcının declaration bloğunu hangi HTML öğelerine uygulayacağını bulmasını sağlayan bir kalıptır. Seçici sayfadaki bir öğeyle eşleşirse, o öğe { } içindeki tüm stilleri alır.
Temel seçici türlerine kısa bakış
Şu dört türle başlayın. Birleştiriciler (combinator), öznitelik (attribute) seçicileri ve sahte sınıflar (pseudo-class) sonraki oturumlarda geliyor; önce öğe, class, id ve * konusunda rahat olun.
📊 Temel CSS seçiciler
| Seçici | Neyle eşleşir | Örnek |
|---|---|---|
| Öğe (tür) | O etiket adına sahip tüm öğeler | p { … } |
| Class | O class özniteliğine sahip öğeler | .card { … } |
| Id | O benzersiz id'ye sahip tek öğe | #hero { … } |
| Evrensel | Her öğe (ölçülü kullanın) | * { … } |
Öğe (tür) seçicileri
Öğe seçici sadece etiket adıdır; nokta da yok, kare (#) işareti de. h1 sayfadaki her <h1>'i, p ise her paragrafı biçimlendirir. Bir etiket için tutarlı bir temel görünüm istediğinizde günlük işlerin en geniş kapsamlı aracıdır.
Başlıklar ve paragraflar için öğe seçiciler
cssh1 {
color: #0f766e;
font-size: 2rem;
}
p {
color: #334155;
line-height: 1.6;
}
Tür seçiciler ne zaman işe yarar
Sitenin geneline ait varsayılanlar için kullanın: body metin rengi, başlık kalınlığı, liste boşlukları. Yalnızca bazı paragraflar farklı görünecekse, tüm p öğelerini değiştirmek yerine bir class tercih edin.
Class seçicileri
Class seçici bir nokta (.) ve ardından class adıyla başlar. HTML'de öğeleri class="card" ile işaretlersiniz. Aynı class birçok öğede bulunabilir; yeniden kullanılabilir tasarımın temel aracının class olmasının nedeni de budur.
Yeniden kullanılabilir kartlar için class seçici
css.card {
background: #f8fafc;
border: 1px solid #cbd5e1;
padding: 1rem;
border-radius: 8px;
}
HTML, class adıyla eşleşmeli
CSS'teki .card yalnızca gerçekten class="card" taşıyan öğeleri (ya da içlerinde card olan birden fazla class'a sahip öğeleri) biçimlendirir. Yazım birebir aynı olmalıdır: .Card ile .card farklıdır.
Id seçicileri
Id seçici bir kare işareti (#) ve ardından id adıyla başlar. HTML'de id="hero" yazarsınız. Bir id sayfada benzersiz olmalıdır; yalnızca tek bir öğede bulunur. Stillerin çoğu için class'ı tercih edin; id'yi gerçekten tek bir kez geçen bir dönüm noktası için saklayın.
Benzersiz bir banner için id seçici
css#hero {
min-height: 40vh;
background: #0f172a;
color: #f8fafc;
padding: 2rem;
}
Evrensel seçici (*)
Evrensel seçici * her öğeyle eşleşir. Bazen basit bir sıfırlama için kullanılır (örneğin box-sizing ayarlamak), ancak her şeye renk ya da margin vermek düzeninizle çatışabilir. Günlük görünüm için daha hedefli seçiciler kullanın.
Dikkatle kullanılan evrensel seçici
css* {
box-sizing: border-box;
}
Bir sayfada seçicileri bir arada kullanmak
Gerçek stil sayfaları türleri karıştırır: varsayılanlar için öğe seçiciler, yeniden kullanılan parçalar için class, nadir ve benzersiz hedefler için id. Aşağıdaki küçük stil sayfası bu alışkanlığı gösteriyor; her kuralın bir id'ye ihtiyacı yok.
Bir sayfada seçici türlerinin küçük bir karışımı
cssbody {
font-family: Georgia, serif;
margin: 0;
}
.card {
max-width: 28rem;
margin: 1rem;
}
#hero {
padding: 2rem;
}
Class mı id mi? Pratik bir alışkanlık
- Düğmeler, kartlar, gezinme bağlantıları ve yeniden kullanabileceğiniz her şey için class tercih edin
- Id'yi yalnızca hedef gerçekten benzersizse kullanın (sayfadaki tek banner, ana arama kutusu)
- Biçimlendirdiğiniz her kutu için yeni bir id uydurmayın; bu, yeniden kullanımı engeller ve ileride cascade derslerinde sizi zorlar
Kendiniz deneyin
- Bir alıştırma sayfasına
<h1>, iki<p>, bir<div class="card">ve bir<section id="hero">ekleyin. h1vepiçin bir öğe kuralı yazın..card'a iç boşluk (padding), açık renkli arka plan ve kenarlık (border) verin.#hero'ya koyu arka plan ve açık renkli metin verin.- İsteğe bağlı:
* { box-sizing: border-box; }ekleyin ve kartın içindeki padding'in daha öngörülebilir davrandığını görün.
Sık yapılan hatalar
.card { }yazmak isterkencard { }yazmak: nokta olmazsa tarayıcı HTML'de var olmayan “card” adlı bir öğe arar#hero { }yerinehero { }yazmak: kare işareti eksik- HTML'de
class="card"yazıp CSS'te.crdyazmak: eşleşme olmaz, dolayısıyla stil de uygulanmaz - Birçok öğeye aynı
id'yi vermek: HTML geçersiz olur ve hedefleme öngörülemez hale gelir - Tek seferlik bir tasarım için yalnızca tür seçici kullanmak: sadece bir bloğu değiştirmek isterken her
pya dadivdeğişir
Özet
- Seçiciler, kuralın stillerini hangi HTML öğelerinin alacağını belirler
- Öğe seçiciler etiket adını kullanır (
h1,p) - Class seçiciler noktayla başlar (
.card) ve HTML'dekiclassözniteliğiyle eşleşir - Id seçiciler kare işaretiyle başlar (
#hero) ve benzersiz tek bir öğeyi hedeflemelidir *her şeyle eşleşir: özenli sıfırlamalar için yararlıdır, tüm süslemeler için değil- Yeniden kullanılabilir arayüz için class tercih edin; id'leri az ve benzersiz tutun
🧠 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