Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Veri tablosunu küçük ekranda okunabilir tutmanın en güvenilir yolu, anlamlı başlıklar ve doğru hücre ilişkileri kullanan semantik bir table öğesini yatay kaydırılabilen bir kapsayıcıya almaktır. Tabloyu ekrana zorla sığdırmak yerine, önemli sütunları öne alın; ikincil sütunları küçültmek, gizlemek veya ayrı bir ayrıntı görünümüne taşımak daha iyi sonuç verir.

Nasıl çalışır?​


Masaüstünde geniş bir tablo bütün sütunları aynı anda gösterebilir. Telefon ekranında ise her sütunu daraltmak metinlerin kırılmasına, sayıların karışmasına ve başlıkların hangi veriye ait olduğunun belirsizleşmesine yol açar. Kapsayıcıya overflow-x: auto vermek, tabloyu okunabilir bir asgari genişlikte bırakır ve yalnızca gerektiğinde yatay kaydırma oluşturur.

Tablonun yapısı da en az CSS kadar önemlidir. Sütun başlıklarını <th scope="col">, satır başlıklarını ise <th scope="row"> ile belirtin. Tabloya caption eklemek, kullanıcının verinin neyi karşılaştırdığını anlamasını kolaylaştırır. Hücreleri yalnızca görsel olarak hizalamak için boşluk karakterleri kullanmayın.

Çalışan en küçük örnek​


Aşağıdaki dosyayı doğrudan bir .html dosyasına kaydedip tarayıcıda açabilirsiniz. Pencereyi daralttığınızda tablo kapsayıcısının içinde yatay kaydırma görünür; başlıklar ve sayılar okunabilir kalır.

HTML:
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<title>Okunabilir stok tablosu</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
  .table-scroll {
    min-width: 0;
    max-width: 100%;
    border-radius: 4px;
    overflow-x: auto;
  }

  .table-scroll table {
    border-collapse: collapse;
    min-width: 34rem;
    width: 100%;
  }

  .table-scroll caption {
    font-weight: 700;
    margin-bottom: .5rem;
    text-align: left;
  }

  .table-scroll th, .table-scroll td {
    border: 1px solid #b8bec8;
    padding: .65rem .75rem;
    text-align: left;
    vertical-align: top;
  }

  .table-scroll th {
    background: #f0f2f5;
  }

  .table-scroll td:nth-child(2),
  .table-scroll td:nth-child(3) {
    white-space: nowrap;
  }
  .table-scroll:focus-visible {
    outline: 2px solid #174a8b;
    outline-offset: 2px;
  }
</style>
</head>
<body>
<p id="stock-hint">Dar ekranda tabloyu yatay kaydırın. Klavyeyle alana odaklanıp ok tuşlarını kullanabilirsiniz.</p>
<div class="table-scroll" tabindex="0" role="region" aria-labelledby="stock-caption" aria-describedby="stock-hint">
  <table>
    <caption id="stock-caption">Ürün stok durumu</caption>
    <thead>
      <tr>
        <th scope="col">Ürün</th>
        <th scope="col">Stok</th>
        <th scope="col">Durum</th>
        <th scope="col">Son güncelleme</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">Klavye</th>
        <td>24</td>
        <td>Mevcut</td>
        <td>Bugün 09:30</td>
      </tr>
      <tr>
        <th scope="row">Monitör</th>
        <td>3</td>
        <td>Sınırlı</td>
        <td>Bugün 08:10</td>
      </tr>
    </tbody>
  </table>
</div>
</body>
</html>

Sonucu nasıl yorumlamalı?​


Tablo dar ekrana sığıyorsa kullanıcı bütün veriyi kaydırmadan görür. Sığmıyorsa kapsayıcı içinde yatay kaydırma oluşması beklenen davranıştır; bu, tablonun bozulduğu anlamına gelmez. Ancak kullanıcı hangi yönde kaydırabileceğini fark etmiyorsa kapsayıcının kenar boşluğunu, başlığını veya yardımcı açıklamasını iyileştirin.

Tablo hiç kaymıyor ve içerik kesiliyorsa overflow-x: auto kuralının doğrudan kapsayıcıda olduğundan emin olun. Sayfa genişliği de kayıyorsa genellikle taşan tablo kapsayıcı dışında kalmıştır veya bir üst öğede sabit genişlik vardır. Bu durumda tarayıcının geliştirici araçlarında tabloyu ve üst öğelerini inceleyin. Flex veya grid içindeki üst öğenin asgari genişliği de küçülmeyi engelleyebilir; ilgili öğede min-width: 0 veya uygun bir minmax(0, 1fr) sütun tanımı gerekebilir. Örnekteki odaklanabilir ve adlandırılmış kaydırma bölgesini klavyeyle de deneyin; görünür odak işaretini kaldırmayın.

Hangi yaklaşımı seçmeli?​


Aynı çözümü her tabloya uygulamak yerine sütunların önemini değerlendirin.

Tablo durumuUygun yaklaşımDikkat edilecek nokta
Az sütun, kısa değerlerNormal akışta yüzde yüz genişlikMetin ve hücre boşlukları daralmamalı
Çok sütun, karşılaştırma gerekliYatay kaydırılabilen kapsayıcıKapsayıcı dışında taşma bırakılmamalı
Çok sütun, yalnız birkaç bilgi önemliÖnemli sütunları gösterip ayrıntıyı ayrı görünüme taşımaGizlenen veri başka bir yoldan erişilebilir olmalı

İlk olarak tabloyu semantik ve eksiksiz kurun, sonra dar ekranda test edin. Sadece görünüş için sütunları display: none ile kaldırmak, kullanıcı için gerekli bilgiyi erişilemez yapabilir. Gerçekten ikincil olan alanları kaldıracaksanız aynı bilgiyi satır ayrıntısı, açılır bölüm veya ayrı bir kayıt sayfasında sunun.

Sık yapılan hatalar​


  1. Tabloyu küçük ekrana sığdırmak için yazı boyutunu aşırı küçültmek: Okunabilirlik azalır; yatay kaydırma genellikle daha doğru çözümdür.
  2. Başlık satırını kaldırmak: Kullanıcı değerlerin anlamını kaybeder. thead ve th yapısını koruyun.
  3. Her sütuna white-space: nowrap vermek: Uzun açıklamalar gereksiz yere genişlik oluşturur. Bu kuralı yalnızca tarih, kod veya kısa durum gibi bölünmemesi gereken değerlere uygulayın.
  4. Mobilde tabloyu kartlara dönüştürürken hücre ilişkisini kaybetmek: Kart görünümü kullanacaksanız her değerin etiketini de göstermeli ve tablo anlamını korumalısınız.

Kaynaklar​



Sık sorulan sorular​


Yatay kaydırma kullanıcıya nasıl fark ettirilir?​


Tablonun üstüne kısa bir yardımcı metin ekleyebilir, kapsayıcıya yeterli kenar boşluğu bırakabilir veya sağda devam eden içeriğin küçük bir kısmını görünür tutabilirsiniz. Bu açıklama yalnızca kaydırma gerektiğinde gösterilecek şekilde de düzenlenebilir.

Uzun metinli hücrelerde ne yapılmalı?​


Açıklama metninin satır içinde kırılmasına izin verin; uzun URL veya kod gibi bölünmemesi gereken değerleri ayrı biçimlendirin. Kullanıcı için asıl değer önemliyse hücreye tamamı görülebilen ayrıntı görünümü eklemek, tabloyu aşırı genişletmekten daha uygundur.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic