CodeBlanks Logo Icon CodeBlanks

Nested compound

CSS kursu · Uzman · Ders 47/53

&.class gibi bileşik seçicileri öğrenirsin.

Bileşik seçiciler nested

Bazen dış seçiciyi bir sınıfla birleştirmen gerekir: .tab.active gibi. Nesting içinde &.active yazımı bunu üretir. .tab { &.active { background: navy; } }, .tab.active { background: navy; } anlamına gelir.

Boşluk olmadan & ve .active yan yana gelir; böylece aynı öğeye hem .tab hem .active uygulanır. Boşluk bırakırsan torun ilişkisi oluşur ve başka öğeyi yakalarsın.

Doğrudan çocuk & ile

Doğrudan çocuk birleştiricisi (>) de & ile birlikte kullanılabilir. .menu { & > li { } } yazımı .menu > li üretir; yalnızca doğrudan çocuk li öğelerini yakalar.

Aynı şekilde & + h2 bir sonraki kardeşi, & ~ p sonraki tüm kardeşleri yakalar. &, dış seçicinin adını doğru konumda tutar.

Uygulama Sekme için selected ve çocuk ekle

.tab seçicisinin içine iki nested bölüm ekle: birincisi &.selected bileşik seçicisi, içine color: navy; ikincisi & > span doğrudan çocuk seçicisi, içine font-weight: 600.

Örnek çözümü göster
.tab bloğunun içine iki bölüm ekle.
Örnek çözüm:
/* .tab içine selected ve span ekle */
.tab {
  padding: 0.5rem;
  &.selected {
    color: navy;
  }
  & > span {
    font-weight: 600;
  }
}

Öznitelik ile birleştirme

Aynı mantık öznitelik seçicilerle de çalışır. .field { &[disabled] { opacity: 0.5; } } yazımı .field[disabled] üretir; devre dışı bırakılmış alanları yakalar.

Sınıf, öznitelik ve sözde sınıf birlikte de kullanılabilir: &.active:focus. & dış seçicinin adını doğru konumda tuttukça kombinasyonlar istediğin gibi çalışır.

Kendini test et

  1. &.is-open yaz

    .panel {
      ____ {
        display: block;
      }
    }
    Cevabı göster
    .panel {
      &.is-open {
        display: block;
      }
    }
  2. &.active neyi eşleştirir?

    .tab {
      &.active { background: navy; }
    }
    • Yalnızca .active sınıfına sahip tüm öğeleri
    • Hem .tab hem .active sınıfına sahip öğeyi
    • .tab içindeki .active çocuğunu
    • .tab öğesinin bir sonraki kardeşini
    Cevabı göster

    Hem .tab hem .active sınıfına sahip öğeyi — Doğru. &.active .tab.active olur; iki sınıf da aynı öğeye uygulanır.

Uzman bölümündeki tüm dersler