CodeBlanks Logo Icon CodeBlanks

Container bileşenleri

CSS kursu · Uzman · Ders 23/53

Container queries ile tekrar kullanılabilir bileşen kurarsın.

Tekrar kullanılabilir bileşen

Bir kart bileşeni düşün: aynı kart, ana sütunda geniş, kenar çubuğunda dar, modalda orta boy görünmeli. Medya sorguları ekranı dinlediği için bu üç durumu tek CSS ile çözemezsin. Container sorguları ise bileşeni kapsülleyerek yalnızca içinde bulunduğu kabı dinler.

Böylece bileşen, yerleştirildiği yere göre uyum sağlar. Aynı HTML ve CSS, farklı kablarda farklı görünümler üretir; tekrar kullanım artar.

Kapsülleme ve sınır

Container bileşeni, dışarıdan gelen stillere karşı nispeten dirençlidir. İçerideki @container sorguları yalnızca bileşenin kendi kabına bakar; ebeveynden gelen yazı boyutu ya da renk değişimi iç sorguları bozmaz.

Bu, tasarım sisteminde tutarlılık sağlar. Ekip, bir bileşeni geliştirirken onun farklı kabda nasıl davranacağını bileşen dosyasından okur; başka dosyalara bakmaz.

Uygulama Tekrar kullanılabilir kart bileşeni

.product seçicisine container-type: inline-size ve container-name: product ver. Ardından @container product (min-width: 320px) sorgusu içinde .product-body alt seçicisine display: grid tanımla. Böylece ürün kartı dar kabda tek sütun, geniş kabda ızgara olarak dizilir.

Örnek çözümü göster
/* ürün kartı kabını aç ve adlandır */
/* geniş kabda gövde ızgaraya dönsün */
.product {
  container-type: inline-size;
  container-name: product;
}
@container product (min-width: 320px) {
  .product-body {
    display: grid;
  }
}

Kendini test et

  1. Container bileşenlerinin temel avantajı nedir?

    • Aynı bileşen farklı kabda farklı görünür
    • Daha az HTML yazılır
    • Daha hızlı JavaScript çalışır
    • Tarayıcı bellek kullanımı azalır
    Cevabı göster

    Aynı bileşen farklı kabda farklı görünür — Doğru. Bileşen kaba göre uyum sağlar; ekran genişliğine göre değil.

  2. Bileşen kabını tanımla

    .product {
      container-type: ____;
      container-name: product;
    }
    Cevabı göster
    .product {
      container-type: inline-size;
      container-name: product;
    }
  3. Bileşen kavramlarını eşleştir

    Kapsülleme
    Bileşen kabı dinler
    Miras değil
    Ebeveyne değil kabına bakar
    Bileşen yeniden kullanım
    Aynı CSS farklı kabda
    Duyarlı
    Kaba göre biçim değiştirir

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