Html & Css İle Özelleştirilebilir Bir Dinamik Zaman Çizelgesi Nasıl Yapılır?

Gereksinimler ve Ön Hazırlık

Projeye başlamadan önce modern bir kod editörüne (VS Code önerilir) ve güncel bir tarayıcıya (Chrome, Firefox veya Edge) sahip olmanız yeterlidir. CSS'in modern özelliklerinden biri olan Flexbox ve Grid yapısını yoğun bir şekilde kullanacağız. Bu nedenle, tarayıcılarınızın güncel olduğundan emin olmalısınız.

  • HTML5 ve CSS3 temel bilgisi.
  • Semantik etiketlerin (section, article, div) kullanımı.
  • CSS değişkenleri (Custom Properties) ile tema yönetimi.

Adım 1: Semantik HTML Yapısını Oluşturma

Zaman çizelgesi, mantıksal olarak bir liste yapısıdır. Bu nedenle

    ve
  • etiketlerini kullanmak, ekran okuyucular ve SEO açısından en doğru yaklaşımdır. Aşağıdaki kod, zaman çizelgemizin iskeletini oluşturur.

    • Proje Başlangıcı

      2026 yılının ilk çeyreğinde planlama süreci tamamlandı.

    • Geliştirme Aşaması

      Kodlama standartları belirlendi ve ilk sprint başladı.

    Burada her timeline-item, zaman çizelgesindeki bir noktayı temsil eder. İçeriklerinizi content sınıfı içerisinde gruplayarak CSS ile kolayca konumlandırabiliriz.

    Adım 2: CSS ile Görsel Tasarım ve Hizalama

    Şimdi HTML yapımızı görselleştirelim. Zaman çizelgesinin ortasından geçen dikey çizgiyi oluşturmak için ::before pseudo-elementini kullanacağız. Bu yöntem, HTML kodunu kirletmeden tasarım yapmanızı sağlar.

    .timeline {
      list-style: none;
      padding: 20px 0;
      position: relative;
    }
    
    .timeline::before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 50%;
      width: 2px;
      background: #3498db;
    }
    
    .timeline-item {
      margin-bottom: 50px;
      position: relative;
      width: 50%;
      padding: 20px;
    }

    Bu CSS kodları ile dikey ekseni oluşturduk. left: 50% özelliği, çizginin tam merkezde durmasını sağlar. width: 50% ise öğelerin ekranın yarısını kaplamasına olanak tanır.

    Adım 3: Özelleştirilebilir Dinamik Yapı ve CSS Değişkenleri

    Zaman çizelgenizi kolayca özelleştirmek için CSS değişkenlerini kullanmak en profesyonel yaklaşımdır. Bu sayede renkleri veya aralıkları tek bir yerden değiştirebilirsiniz.

    :root {
      --timeline-color: #2ecc71;
      --item-padding: 20px;
      --font-main: 'Arial', sans-serif;
    }
    
    .timeline::before {
      background: var(--timeline-color);
    }
    
    .content {
      background: #f9f9f9;
      padding: var(--item-padding);
      border-radius: 8px;
    }

    CSS değişkenleri, projenin bakımını kolaylaştırır. Örneğin, kurumsal kimliğiniz değiştiğinde sadece --timeline-color değerini güncellemeniz yeterli olacaktır.

    Adım 4: Responsive (Duyarlı) Tasarım Uygulama

    Mobil cihazlarda zaman çizelgesinin düzgün görünmesi için @media sorgularını kullanmalıyız. Küçük ekranlarda dikey çizgiyi sola yaslamak daha iyi bir kullanıcı deneyimi sunar.

    @media (max-width: 768px) {
      .timeline::before {
        left: 20px;
      }
      .timeline-item {
        width: 100%;
        padding-left: 50px;
      }
    }

    Bu kod bloğu, ekran genişliği 768 pikselin altına düştüğünde çizginin sola kaymasını ve içeriklerin tam genişlikte hizalanmasını sağlar.

    Adım 5: Etkileşimli Tasarım ve Animasyonlar

    Zaman çizelgesine hover (üzerine gelme) efekti ekleyerek dinamik bir his katabiliriz. Bu, kullanıcıya hangi öğe ile etkileşime girdiğini gösterir.

    .timeline-item:hover .content {
      transform: scale(1.02);
      transition: transform 0.3s ease;
      box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    }

    transition özelliği, animasyonun yumuşak bir şekilde gerçekleşmesini sağlar. Bu küçük dokunuş, arayüzü çok daha modern hissettirir.

    Yöntem Karşılaştırma Tablosu

    Yöntem Avantajı Dezavantajı
    CSS Pseudo-elements Hafif, hızlı, temiz HTML. Karmaşık yapılarda yönetimi zor olabilir.
    Flexbox/Grid Duyarlı tasarımda çok esnek. Eski tarayıcılarda destek sorunu olabilir.
    JavaScript Kütüphaneleri Gelişmiş özellikler (kaydırma efekti). Sayfa yükleme hızını düşürür.

    Güvenlik Uyarısı: Web arayüzlerinde kullanıcıdan veri alıyorsanız, XSS (Cross-Site Scripting) saldırılarına karşı her zaman girdileri temizlemeyi (sanitize) unutmayın. CSS ile görselleştirme yaparken dışarıdan gelen verileri doğrudan HTML içine basmak yerine, güvenli yöntemler kullanın.

    Sıkça Sorulan Sorular

    CSS değişkenlerini neden kullanmalıyım?

    CSS değişkenleri, projenin sürdürülebilirliğini artırır. Tasarım değişikliği yapmak istediğinizde yüzlerce satır kod arasında arama yapmak yerine, en üstteki değişkeni değiştirmeniz yeterlidir.

    Bu zaman çizelgesi SEO uyumlu mu?

    Evet, semantik HTML (ul, li, h3) kullandığımız için arama motorları içeriği kolayca tarayabilir ve hiyerarşiyi anlayabilir.

    Daha fazla öğe eklersem tasarım bozulur mu?

    Kodumuz esnek bir yapıya sahip olduğu için, yeni li öğeleri eklediğinizde CSS otomatik olarak bunları alt alta dizecektir.

    Mobil cihazlarda neden çizgi sola kayıyor?

    Ekran alanı daraldığında, iki taraflı bir tasarım okunabilirliği zorlaştırır. Tek sütunlu (sola yaslı) tasarım, mobil kullanıcılar için standart bir pratiktir.

    Animasyonlar performansı etkiler mi?

    CSS ile yapılan basit transform ve shadow animasyonları, tarayıcıların GPU'sunu kullandığı için performans üzerinde ihmal edilebilir bir etkiye sahiptir.

    İleri Düzey İpuçları ve Optimizasyon Stratejileri

    Zaman çizelgesi yapınızı daha profesyonel ve sürdürülebilir kılmak için CSS'in sunduğu modern yetenekleri bir adım öteye taşıyabilirsiniz. Özellikle scroll-behavior ve aspect-ratio gibi özellikler, tasarımın akışını iyileştirmek için kritik öneme sahiptir.

    CSS Scroll-Snap ile Akıcı Deneyim

    Zaman çizelgeniz çok sayıda öğe içeriyorsa, kullanıcıların kaydırma yaparken belirli noktalara "yapışmasını" sağlayarak daha düzenli bir okuma deneyimi sunabilirsiniz. Bu, özellikle mobil cihazlarda kullanıcı deneyimini (UX) ciddi oranda artırır.

    .timeline-container {
      scroll-snap-type: y mandatory;
      overflow-y: scroll;
      height: 80vh;
    }
    
    .timeline-item {
      scroll-snap-align: start;
    }

    Modern Tarayıcılar İçin CSS Grid Kullanımı

    Zaman çizelgesi öğelerini hizalamak için flexbox harika bir başlangıçtır ancak karmaşık düzenlerde grid yapısı çok daha esnek sonuçlar verir. Özellikle "tarih" ve "içerik" sütunlarını birbirinden bağımsız yönetmek istediğinizde grid kullanmak, CSS kodunuzu %30 oranında sadeleştirmenizi sağlar.

    .timeline-grid {
      display: grid;
      grid-template-columns: 100px 1fr;
      gap: 20px;
      align-items: start;
    }

    Zaman Çizelgesi İçin Hata Ayıklama (Debugging) Yöntemleri

    Geliştirme sürecinde en sık karşılaşılan sorun, zaman çizelgesi çizgisinin (timeline line) öğelerle hizalanmamasıdır. Bu tür hizalama hatalarını çözmek için şu adımları izleyebilirsiniz:

    • Outline Testi: Tüm kapsayıcılara geçici olarak outline: 1px solid red; vererek boşlukları (padding/margin) görselleştirin.
    • Taşma Kontrolü: overflow: hidden özelliğini geçici olarak kaldırarak, dışarı taşan öğelerin tasarımınızı nasıl bozduğunu inceleyin.
    • Z-Index Çakışmaları: Çizginin öğelerin arkasında kalması durumunda, çizgiye z-index: -1 vererek kapsayıcı içinde konumlandırın.
    Profesyonel İpucu: Tasarımınızda kullandığınız CSS değişkenlerini (CSS Variables) bir :root bloğunda toplamak, projenin ilerleyen aşamalarında renk paletini veya boşluk değerlerini tek bir noktadan değiştirmenize olanak tanır.

    Dağıtım (Deployment) Öncesi Kontrol Listesi

    Projenizi canlıya almadan önce şu teknik kontrolleri yapmayı unutmayın:

    1. Tarayıcı Uyumluluğu: CSS grid veya gap özelliklerinin eski tarayıcılarda çalışıp çalışmadığını Autoprefixer araçlarıyla kontrol edin.
    2. Görsel Optimizasyonu: Zaman çizelgesi içindeki ikon veya görselleri WebP formatında kullanarak sayfa yüklenme hızını optimize edin.
    3. Erişilebilirlik (A11y): Ekran okuyucular için aria-label etiketlerini kullanarak zaman çizelgesindeki tarihleri belirginleştirin.

    Sonuç

    Bu rehberde, Html & Css ile özelleştirilebilir bir dinamik zaman çizelgesi nasıl yapılır sorusunu temelden alarak profesyonel bir seviyeye taşıdık. Semantik yapının önemini, CSS değişkenlerinin gücünü ve responsive tasarımın temel prensiplerini uyguladık. Artık kendi projelerinizde bu yapıyı kullanarak, kullanıcılarınıza etkileyici hikayeler anlatabilirsiniz.

    Bir sonraki adım olarak, bu zaman çizelgesine JavaScript ile "scroll-triggered" (kaydırma ile tetiklenen) animasyonlar ekleyerek arayüzünüzü daha da canlı hale getirebilirsiniz. Başarılar dilerim!

Bu yazıya tepkinizi paylaşın:
Deniz Arslan

On yıldır dijital içerik üretimi ve editörlük alanında çalışıyorum. Karmaşık süreçleri herkesin anlayabileceği basit ve adım adım rehberlere dönüştürme konusunda uzmanım.

Yorumlar (0)

Yorum Yaz