Lütfen tablo başlıklarını sabitleyin
- Web'de büyük veri kümeleri veya tablo düzenleriyle sık sık karşılaşıyoruz.
- Yüzlerce satırı olan bir tabloda kaydırmaya başlayınca sorun ortaya çıkıyor.
- Tablo başlığı kaybolduğunda, kullanıcının her sütunun neyle ilişkili olduğunu hatırlaması zorlaşıyor.
Sabit başlık
- Sabit başlıklar sihirli gibi görünür, ama uygulaması çok kolaydır.
thead öğesine yalnızca iki CSS özelliği eklemeniz yeterlidir:
position: sticky;
top: 0;
- Dünya genelinde yaklaşık %96 destek oranına sahip
sticky, birçok tarayıcıda güvenilir biçimde desteklenir.
- Kullanıcı deneyimini iyileştirmeye de yardımcı olur.
GN⁺ görüşü
- Bir web sitesinde büyük tablolarla çalışırken, kullanıcı aşağı kaydırsa bile tablonun başlığını kolayca görebilmesini sağlamak, kullanıcı deneyimini önemli ölçüde iyileştirir.
- CSS'in
position: sticky; özelliğiyle tablo başlığının kolayca sabitlenebilmesi, web geliştiricileri için faydalı bir bilgidir.
- Bu özelliğin yaygın olarak desteklenmesi, web geliştiricilerine bunu farklı tarayıcılarda güvenle uygulayabileceklerini gösterir.
1 yorum
Hacker News görüşleri
sticky headers) mümkün, ancak CSS’nin bunu iki eksende de destekleyeceği günü bekliyorum: GitHub issue bağlantısıposition: sticky;kullanarak tablo başlığını sabitlemek kolaymış gibi görünüyor, ancak tablo içeriğiyle bazı işlemler yapınca sorunlar çıkıyor. Örneğin, kullanıcının tabloyu kaydırıp sayfadan ayrıldıktan sonra geri döndüğünde kaydırma konumunu geri yükleyen bir özellik ekledim; fakat geri yüklenen konum her zaman bir satır aşağı kaymış oluyordu. Şeffaf tablo başlığının içinden bakınca istenen satır en üstte görünüyor, ama başlık üstüne bindiği için sonraki satır ilk görünen satır oluyor. Kaydırma konumunu başlık yüksekliğini hesaba katarak ayarlarsanız başlangıçta düzgün çalışıyor, ancak bazen birkaç piksel kayıyor. Bunun nedeni tablonun büyük olması yüzünden kaydırma olayına göre lazy loading yapılması ve otomatik tablo düzeni kullanıldığı için bazen başlık hücrelerinin fazla daralıp kelimelerin alt satıra geçmesi, dolayısıyla toplam başlık yüksekliğinin artması. Nihai çözüm, başlık öğesi üzerinde birResizeObserveroluşturup yükseklik değiştiğinde kaydırma konumunu dinamik olarak ayarlamak oldu. ResizeObserver belgeleri<th>etiketlerini kullanma gibi ek bir çaba gösteriyorsa, büyük ihtimalle istedikleri davranış budur.stderr), gövdeyi ise standart çıktıya (stdout) göndermek iyi olur. Aksi halde sıralama yapıldığında başlık sonuçların arasına karışabilir.position: stickyözelliğinin<thead>ve<tr>öğelerinde kullanılmasını engelliyordu: Chromium issue bağlantısıtopdeğerini kenarlığı hesaba katarak ayarlarsanız (örneğin-1pxyerine0), tablo gövdesinin başlığın üzerine akmasını önleyebilirsiniz. İki CodePen örneği karşılaştırılıyor: eski CodePen ve iyileştirilmiş CodePen