CSS Kombine veya Kompleks Seçiciler

CSS konusuna hakim kişilerin işini kolaylaştıran müthiş yapılardır. Sürekli ID veya Class değeri kullanmak yerine (HTML içerisinde belirtmek yerine) CSS tarafında yapılan küçük müdahaleler ile istenilen elemente doğrudan erişim sağlayabilmektedir. Kendi içerisinde 5 farklı maddeden oluşmaktadır. Bunlar: Gruplandırma, Alt Öğe (Descendant), Doğrudan Alt Öğe (child), Bitişik Kardeş Tekil (Adjancent Sibling), Genel Kardeş Çoğul (General Sibling) şeklindedir.


1) Gruplandırma:

Aynı CSS özellikleri birden çok HTML elementine verilmek isteniyorsa "class", "id", "element" fark etmeksizin "," işareti ile gruplandırılabilir.

<span class='output'></span>
<div id='left'></div>
<section></section>
.output, #left, section{
  background-color: plum;
}

Yukarıdaki yazım tarzı ile CSS gruplandırma işlemini yapabilirsiniz.


2) Alt Öğe (Descendant)

Eğer bir elementin içersinde çocuğun çocuğu varsa biz bu durumda, dede element ile torun elemente doğrudan erişim imkanı vermektedir.

  <article>
    <h1><span>Title</span></h1>
    <p>blabla</p>
  </article>
article span{  // Bunu seçer ✔️
  color: red; 
}
article p{ // Bunu da seçer ✔️
  color: orange; 
}

Yani ana ebeveyn içerisindeki ister torun olsun, ister evlat, isterse torun torun torun olsun :) yukarıdaki yazım tarzı ile o elemente erişim sağlamak mümkündür.


3) Doğrudan Alt Öğe (Child)

"Descendant" yapısından farklı olarak sadece ve sadece elementin çocuğunu seçer. Eğer ebeveny elementin torununu seçmek istiyorsak bu yöntem ile seçmek mümkün değildir! > işareti ile kullanılmaktadır.

  <article>
    <h1><span>Title</span></h1>
    <p>blabla</p>
  </article>
article > span{  // Bunu seçmez ❌
  color: red; 
}
article > p{ // Fakat bunu seçer ✔️
  color: orange; 
}

(Descendant) ile (child) arasındaki fark sadece > işaretidir.


4) Bitişik kardeş (Adjacent Sibling) seçiciler:

HTML elementinin kardeş olması durumunda, alt alta gelen elementlerden sadece bir tanesini seçer bu nedenle "Genel Kardeş (Genaral Sibling)" den farklıdır. "+" işareti ile birlikte kullanılmaktadır. + işaretini yapmak için "SHIFT + 4" üste bulunan 4 sayısına basmak gerekmektedir.

<h1>Title</h1>
<p>Paragraf</p> <!-- Sadece bunu seçer ✔️ -->
<p>Paragraf</p> <!-- Fakat bunu seçmez  ❌ -->
h1 + p{
  color: red;
}

Sadece ilk tanımlı olan "p" elementini seçecektir.


5) Genel Kardeş (General Sibling)

Bitişik kardeş (Adjacent Sibling)'den farklı olarak arka arkaya gelen kardeşlerin hepsini seçer. Tabi kardeşten maksat "p" elementidir veya ikinci sırada belirtilen değerdir. Tilda ~ işareti ile gösterilmektedir. Tilda işaretini yapmak için CTRL + ü tuşlarına 2 kere basmak gerekmektedir.

<h1>Title</h1>
<p>Paragraf</p> <!-- Hem bunu seçer✔️ -->
<p>Paragraf</p> <!-- Hem de bunu  ✔️ -->
h1 ~ p{
  color: red;
}

Böylelikle eğer bir elementten sonra gelen ve türü aynı olan birden çok elementi seçmek mümkündür.


CSS'te bulunan diğer seçim türlerini görüntülemek için CSS'te Seçim Yöntemleri isimli ana yazımıza bakmanızı tavsiye etmekteyiz.

Form Elementlerinin Özel Seçicileri

Form elementlerinin özel seçicileri, CSS ile form elemanlarını özelleştirmek için kullanılan yapılardır. Bu seçiciler "form" elemanlarından input, select ve textarea elementleri için ortak olarak bulunmaktadırlar.


1) CSS ":checked" seçicisi nedir?

":checked" seçicisi, bir form elemanının seçili (checked) durumunu hedef alır. Özellikle checkbox ve radio button gibi input elemanlarında kullanılır.

<form action="">
  <input type="radio" checked="checked" value="male" name="gender"> Male<br>
  <input type="radio" value="female" name="gender"> Female<br>
  <input type="checkbox" checked="checked" value="Bike"> I have a bike&...

CSS Pseudo-element (Sözde Element) Seçiciler

Pseudo, kelime anlamı ile sahte manasına gelmektedir. Bu nedenle aslında var olan bir elementin üzerinden türetilen CSS özellikleridir. Doğrudan HTML elementleri incelendiğinde sayfa içerisinde bulunan harici bir element değillerdir.

Pseudo-class (Sözde Sınıf) yapıları ile arasındaki en belirgin fark; Pseudo-class yapıları CSS'te ":" ile gösterilirken, Pseudo-element yapıları CSS'te "::" işareti ile gösterilmektedir.

Toplamda 7 farklı Pseudo-element yapısı bulunmaktadır. Bunlar: ::after, ::before, ::first-letter, ::first-line, ::marker, ::placeholder, ::selection şeklindedir.


1) CSS "::after" seçicisi nedir?