CSS’de farklı öğeleri seçmek ve onlara stil vermek için çeşitli seçiciler kullanırız. Bazı seçiciler oldukça yaygın kullanılırken, bazıları daha az bilinir ancak yine de belirli durumlarda çok işe yarar. Bu yazıda, yazılım dünyasına yeni adım atanlar için iki önemli kombinator olan bitişik (adjacent) seçici ve doğrudan çocuk (direct child) seçici konularına değineceğiz.
Bitişik (Adjacent) Seçici (+
)
Bitişik seçici, bir öğenin hemen ardından gelen kardeş öğeyi seçmek için kullanılır. İki öğe aynı seviyede olmalı, yani biri diğerinin içinde olmamalıdır.
Kullanımı:
h2 + div {
background-color: yellow;
}
Yukarıdaki kod, bir h2
etiketinden hemen sonra gelen div
etiketine sarı arka plan rengi verir.
Örnek Senaryo
Diyelim ki, bir makalemiz var ve makalenin hemen ardından bir bilgilendirme kutusu (div
) geliyor. Bitişik seçici ile sadece makaleden hemen sonra gelen kutuya özel bir stil verebiliriz.
article + div {
border: 2px solid red;
}
Bu kod, yalnızca bir article
elemanından hemen sonra gelen div
elemanının kenarlığını kırmızı yapacaktır.
Eğer sayfanızda birden fazla article
ve div
varsa, sadece birbirini takip edenler etkilenir. Aşağıdaki HTML yapısında sadece ilk bilgilendirme kutusu etkilenir:
<article>İlk makale</article>
<div>Bilgilendirme Kutusu</div>
<article>İkinci makale</article>
<div>İkinci Bilgilendirme Kutusu</div>
Yukarıdaki örnekte, ilk article
ve ardından gelen div
etkilenir, ancak ikinci bilgilendirme kutusu bu kuraldan etkilenmeyecektir, çünkü hemen öncesinde başka bir öğe olabilir.
Doğrudan Çocuk (Direct Child) Seçici (>
)
Doğrudan çocuk seçici, bir öğenin doğrudan içine eklenmiş alt öğeleri seçmek için kullanılır. Genel descendant
seçici (boşluk
) ile farkı, yalnızca doğrudan çocukları seçmesidir. Eğer bir öğe başka bir öğenin içine gömülmüşse ancak doğrudan çocuk değilse, bu seçici onu etkilemez.
Kullanımı:
section > h3 {
font-size: 22px;
}
Bu CSS kodu, sadece bir section
içinde doğrudan bulunan h3
etiketlerine 22 piksel yazı boyutu uygular. Eğer h3
başka bir elemanın (örneğin bir div
içinde) içinde olursa, etkilenmez.
Örnek Senaryo
Diyelim ki, bir aside
elemanımız var ve içinde birkaç bilgi kutusu (div
) var. Ancak biz sadece aside
elemanına doğrudan bağlı olan kutulara özel bir stil vermek istiyoruz.
aside > div {
padding: 10px;
background-color: lightgray;
}
Bu CSS kodu, aside
içinde doğrudan bulunan div
öğelerine açık gri arka plan rengi verir. Eğer div
başka bir section
, ul
, nav
gibi bir öğenin içine yerleştirilmişse, bu stil uygulanmaz.
Örneğin aşağıdaki HTML yapısında sadece ilk div
etkilenir:
<aside>
<div>Doğrudan aside içinde</div> <!-- Etkilenecek -->
<section>
<div>Başka bir bölüm içinde</div> <!-- Etkilenmeyecek -->
</section>
</aside>
Burada section
içindeki div
etiketi aside
'ın doğrudan çocuğu olmadığı için seçilmez.
Sonuç
Bitişik (+
) ve doğrudan çocuk (>
) seçicileri, HTML yapımızı daha hassas bir şekilde seçmemize ve özelleştirmemize yardımcı olur. Bitişik seçici yan yana gelen öğeleri, doğrudan çocuk seçici ise bir öğenin içine eklenen direkt çocuklarını hedefler.
Bu seçicileri kullanarak CSS kodunuzu daha etkili hale getirebilir ve gereksiz stil değişikliklerinden kaçınabilirsiniz. Yeni başlayan biri olarak, CSS seçicileri üzerinde bol bol pratik yaparak farklarını gözlemlemek, ilerleyen süreçte daha profesyonel bir şekilde stil vermenizi sağlayacaktır.