CodeBlanks Logo Icon CodeBlanks

Meydan okuma - BEM mimarisi

CSS kursu · Uzman · Ders 49/53

BEM ve cascade layers ile büyük bir bileşen mimarisi kurarsın.

BEM ve cascade layers

Büyük bir arayüzde BEM sınıf adları rolü belli eder; @layer bildirimi ise çakışan bildirimlerin hangi sırayla öne çıkacağını belirler. .card__title bir element, .card--featured bir modifier olarak adından okunur.

Bir @layer components bölümü açıp .card bildirimlerini içine koyduğunda, bu bildirimler daha düşük öncelikli olur. Bölüm dışından yazılan .card bildirimi çakışmayı kazanır. BEM adlandırma ve katman sırası birleşince öncelik çakışmaları öngörülebilir kalır.

Uygulama BEM kart bileşenini @layer ile yaz

Bir kart bileşeni kur. @layer components bölümü aç ve içine şu bildirimleri yaz: .card için padding: 1.5rem; .card__title için font-size: 1.25rem ve font-weight: 600; .card--featured için border: 2px solid #f59e0b.

Örnek çözümü göster
/* kart bileşeni */
@layer components {
  .card { padding: 1.5rem; }
  .card__title { font-size: 1.25rem; font-weight: 600; }
  .card--featured { border: 2px solid #f59e0b; }
}

Kendini test et

  1. Bir @layer bölümü içindeki .card bildirimiyle, bölüm dışındaki .card bildirimi çakışırsa hangi kazanır?

    @layer components {
      .card { padding: 1rem; }
    }
    .card { padding: 2rem; }
    • Bölüm dışındaki bildirim kazanır
    • Bölüm içindeki bildirim kazanır
    • İkisi de uygulanmaz
    • Bildirimlerin yazım sırası belirler
    Cevabı göster

    Bölüm dışındaki bildirim kazanır — Doğru. Katman dışındaki bildirim, katman içindeki bildirimi geçersiz kılar; çünkü katmansız bildirimler en yüksek önceliktedir.

  2. BEM ve katman kavramlarını eşleştir

    .card
    Block
    .card__title
    Element
    .card--featured
    Modifier
    @layer components
    Öncelik katmanı
  3. Modifier sınıfını tamamla

    /* kartın öne çıkan varyantı */
    .____ {
      border: 2px solid #f59e0b;
    }
    Cevabı göster
    /* kartın öne çıkan varyantı */
    .card--featured {
      border: 2px solid #f59e0b;
    }

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