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: -1vererek 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:
- Tarayıcı Uyumluluğu: CSS
gridveyagapözelliklerinin eski tarayıcılarda çalışıp çalışmadığınıAutoprefixeraraçlarıyla kontrol edin. - Görsel Optimizasyonu: Zaman çizelgesi içindeki ikon veya görselleri
WebPformatında kullanarak sayfa yüklenme hızını optimize edin. - Erişilebilirlik (A11y): Ekran okuyucular için
aria-labeletiketlerini 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!

Yorumlar (0)
Yorum Yaz