Özet
Web geliştirme dünyasında kullanıcı deneyimi artık sadece "güzel görünmek" değil, "istikrarlı hissettirmek" ile ilgilidir. Bir makaleyi okurken aniden sayfanın kaydığını ve okuduğunuz satırı kaybettiğinizi veya yanlış butona tıkladığınızı düşünün. İşte bu sinir bozucu durumun teknik adı Cumulative Layout Shift (CLS), yani Kümülatif Düzen Kayması'dır.
Core Web Vitals Rehberi: CLS Sorunlarını Önlemek İçin CSS 'aspect-ratio' Kullanımı
Web geliştirme dünyasında kullanıcı deneyimi artık sadece "güzel görünmek" değil, "istikrarlı hissettirmek" ile ilgilidir. Bir makaleyi okurken aniden sayfanın kaydığını ve okuduğunuz satırı kaybettiğinizi veya yanlış butona tıkladığınızı düşünün. İşte bu sinir bozucu durumun teknik adı Cumulative Layout Shift (CLS), yani Kümülatif Düzen Kayması'dır.
Google'ın sıralama faktörlerinden biri olan Core Web Vitals'ın önemli bir parçası olan CLS'yi çözmek, modern CSS özellikleri sayesinde artık çok daha kolay. Bu yazıda, aspect-ratio özelliğini kullanarak düzen kaymalarını nasıl tarihe gömebileceğinizi inceleyeceğiz.
CLS Nedir ve Neden Oluşur?
CLS, bir web sayfasının yüklenme aşamasında görsel öğelerin ne kadar yer değiştirdiğini ölçen bir metriktir. Tarayıcı, bir resmin veya videonun boyutlarını bilmediğinde, o öğe yüklenene kadar sayfada yer ayırmaz (veya yanlış miktarda yer ayırır). Öğe yüklendiğinde ise tarayıcı sayfayı yeniden düzenler (reflow) ve içerik aşağı itilir.
CLS'nin en yaygın suçluları:
-
Boyutları (width/height) belirtilmemiş görseller.
-
Reklamlar, embedler ve iframe'ler.
-
Dinamik olarak yüklenen içerikler.
Eski Yöntem: "Padding-Bottom" Hilesi
aspect-ratio hayatımıza girmeden önce, geliştiriciler duyarlı (responsive) kutular oluşturmak için garip bir matematiksel hile kullanmak zorundaydı.
Buna "Padding Hack" deniyordu:
.video-kapsayici {
width: 100%;
height: 0;
padding-bottom: 56.25%; /* 16:9 oranı için (9/16 * 100) */
position: relative;
}
.video-kapsayici iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
Bu yöntem çalışıyordu ama karmaşıktı, okunması zordu ve her en-boy oranı için hesap makinesi kullanmanızı gerektiriyordu.
Modern Çözüm: CSS aspect-ratio
CSS aspect-ratio özelliği, tarayıcıya bir öğenin genişliği değiştikçe yüksekliğinin nasıl hesaplanması gerektiğini söyler. Bu özellik sayesinde, görsel veya içerik henüz yüklenmemiş olsa bile tarayıcı o alan için tam olarak ne kadar boşluk bırakması gerektiğini bilir.
Sonuç? Sıfır düzen kayması.
Temel Sözdizimi
Kullanımı son derece basittir:
.kutu {
aspect-ratio: 16 / 9;
}
Bu kod tarayıcıya şunu söyler: "Bu kutunun genişliği ne olursa olsun, yüksekliğini genişliğin 9/16'sı kadar ayarla."

Pratik Kullanım Senaryoları
1. Görsellerde CLS'yi Önlemek
Modern tarayıcılar HTML üzerindeki width ve height özniteliklerinden en boy oranını hesaplayabilse de, CSS ile bunu zorlamak her zaman daha garantidir, özellikle responsive tasarımlarda.
img {
width: 100%;
height: auto;
aspect-ratio: 4 / 3; /* Görselin orijinal oranı */
object-fit: cover; /* Görüntünün bozulmadan alanı doldurması için */
}
Neden önemli? Görsel yavaş bir bağlantıda 3 saniye sonra yüklense bile, tarayıcı o boşluğu en baştan ayırır. Metinler zıplamaz.
2. YouTube ve Vimeo Embedleri (Iframes)
Harici videolar genellikle CLS puanını en çok düşüren öğelerdir. aspect-ratio burada hayat kurtarır.
iframe.video-embed {
width: 100%;
aspect-ratio: 16 / 9; /* Standart video oranı */
border: none;
}
Artık position: absolute veya padding-bottom hesaplamalarına gerek yok.
3. Kartlar ve Yer Tutucular (Placeholders)
Bir e-ticaret sitesinde ürün kartları veya blog özetleri yüklenirken, içerik gelmeden önce kartın boyutunu sabitlemek istersiniz.
.urun-karti-gorsel {
width: 100%;
aspect-ratio: 1 / 1; /* Kare görseller için */
background-color: #f0f0f0; /* Yüklenirken gri bir kutu görünür */
}
aspect-ratio Kullanırken Dikkat Edilmesi Gerekenler
-
Tarayıcı Desteği:
aspect-ratioartık tüm modern tarayıcılarda (Chrome, Firefox, Safari, Edge) desteklenmektedir. Internet Explorer desteği yoktur (ancak 2024+ dünyasında bu genellikle sorun edilmez). -
object-fitile Birlikte Kullanın: Eğer görselin orijinal oranı ile CSS'te verdiğinizaspect-ratiouyuşmazsa görsel sıkışabilir veya uzayabilir. Bunu önlemek için mutlakaobject-fit: cover;kullanın. -
Yükseklik (Height) Tanımlamayın: Eğer
heightdeğerini sabit bir piksel olarak verirseniz,aspect-ratiogeçersiz kalır. Genelliklewidthverilir,heighttarayıcıya bırakılır.
Daha İyi SEO, Daha Mutlu Kullanıcılar
CLS sorunlarını gidermek, Google Search Console'daki "Önemli Web Verileri" hatalarını temizlemenin en hızlı yoludur. CSS aspect-ratio özelliği, kodunuzu temiz tutarken sitenizin görsel stabilitesini garanti altına alır.
Web sitenizde bugün padding-bottom hack'lerini arayın ve bunları modern aspect-ratio ile değiştirin. Kullanıcılarınız (ve Google botları) size teşekkür edecek.


