CodeBlanks Logo Icon CodeBlanks

Layout ve paint

CSS kursu · Uzman · Ders 9/53

Layout ve paint maliyetini öğrenirsin.

Layout maliyeti nedir?

Bir öğenin boyut veya konumu değiştiğinde tarayıcı layout (yerleşim) hesaplar. Bu işlem reflow da denir. width, height, margin, top, left, display gibi özellikler layout'u tetikler.

Layout maliyeti büyüktür: tek değişiklik tüm sayfanın dizilimini yeniden hesaplat-abilir. Bu yüzden animasyonlarda layout tetikleyen özelliklerden kaçınılır.

Paint maliyeti ve render pipeline

Paint, pikselleri ekrana çizme aşamasıdır. color, background, border-color, box-shadow paint'i tetikler. Layout kadar pahalı değildir ama yine de maliyetlidir.

Composite en ucuz aşamadır: tarayıcı katmanları birleştirir. transform ve opacity yalnız composite'i tetikler. Bu yüzden animasyonlarda bu ikisi tercih edilir. transform: translateX(...) yazmak, left: ... yazmaktan daha hızlıdır.

Uygulama Animasyonu transform ile yaz

Aşağıdaki CSS'i tamamla. .nav bildirimine transform: translateX(100px) ve transition: transform 0.3s ease bildirimlerini ekle. Böylece animasyon layout tetiklemeden çalışır.

Örnek çözümü göster
/* yeni: transform animasyonu */
.nav {
  transform: translateX(100px);
  transition: transform 0.3s ease;
}

Kendini test et

  1. Hangi değişiklik layout hesaplamasını tetikler?

    /* hangisi en pahalı? */
    .box { ___: 200px; }
    • width
    • color
    • opacity
    • transform
    Cevabı göster

    width — Doğru. width kutunun boyutunu değiştirir; tarayıcı tüm dizilimi yeniden hesaplar.

  2. Animasyon için layout tetiklemeyen özelliği yaz

    .nav {
      /* layout yerine composite */
      ____: translateX(100px);
    }
    Cevabı göster
    .nav {
      /* layout yerine composite */
      transform: translateX(100px);
    }
  3. Özelliği tetiklediği aşamaya eşle

    width
    Layout hesaplar
    color
    Paint çizer
    transform
    Composite (hareket)
    opacity
    Composite (saydamlık)

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