CSS · 7/8
Hover ve geçiş efektleri
Kullanıcı etkileşimlerine ölçülü görsel geri bildirim eklemek.
Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.
Bu sayfada · 9 başlık
Başlamadan önce
Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.
Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Videoyla adım adım izle
Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.
Video bölümleri ve tam metin
Hover ve geçiş efektleri
Kullanıcı etkileşimlerine ölçülü görsel geri bildirim eklemek.
Kavramı kur
Hover fareyle bir öğenin üzerine gelindiğinde eşleşir. Telefonda kalıcı bir fare işaretçisi olmadığı için önemli bilgi veya işlem yalnızca hover durumunda ortaya çıkmamalıdır. Bir düğmenin normal hâli zaten anlaşılır olmalı; hover yalnızca etkileşimi desteklemelidir. Klavye için focus-visible durumunu ayrıca düşün.
Neden böyle çalışıyor?
Transition bir özelliğin eski değerden yeni değere geçişini zamana yayar. “all” yazmak beklemediğin özellikleri de hareketlendirebilir; hangi özelliklerin değişeceğini açıkça listelemek daha kontrollüdür. Kısa ve amaçlı bir renk geçişi, her öğenin hareket etmesinden daha yararlı olabilir.
Çalışma sırası
Bazı kullanıcılar cihazlarında hareketi azaltmayı seçer. prefers-reduced-motion koşuluyla zorunlu olmayan hareketi kapat. Animasyonların bilgiye erişim için şart olmaması, tasarımın hareket olmadan da çalışması gerektiğini gösterir. Hareketi işlev yerine dekorasyon olarak kullanıp dikkati dağıtma.
İkinci örnek · 1
hover bir işaretçi durumudur; tek erişim yolu olarak tasarlanmaz. Kodun tamamı yazılı derste bulunur.
Kod
<style>
.dugme{padding:12px 18px;background:#eef2ff;border:1px solid #64748b;transition:background-color .15s}
.dugme:hover{background:#c7d2fe}.dugme:focus-visible{outline:3px solid #245f9e;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.dugme{transition:none}}
</style>
<button class="dugme">Kaydet</button>Beklenen sonucu oku
prefers-reduced-motion kullanıcı tercihine saygı göstermeyi sağlar.
Beklenen çıktı: Fare üzerine gelince rengi değişen, klavyeyle odaklanınca belirgin çerçevesi olan düğme.
Bir değeri sen değiştir
Yalnızca background-color için kısa geçiş ekle. Fare kullanmadan Tab ile düğmeye ulaş.
Hata nereden gelir?
outline:none verip yerine görünür odak eklememek klavye kullanıcısını kaybettirir.
Kendi çözümünü kur
Hareket azaltma tercihini aç ve geçişin kapandığını doğrula. Önce hareket olmadan anlaşılır düğmeyi kur, sonra geçişi ekle.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
<style>a{color:#245f9e;text-decoration:underline}a:focus-visible{outline:2px solid currentColor;outline-offset:4px}</style>
<a href="#sonuc">Sonuç bölümüne git</a><p id="sonuc">Hedef burası.</p>Kendini kontrol et
Hover neden tek başına yeterli etkileşim göstergesi değildir? Yanıt: Dokunmatik ve klavye kullanan kişiler hover durumuna aynı şekilde erişmeyebilir.
Beklenen çıktı: Altı çizili ve klavye odağı görünen bağlantı.
Konu anlatımı
Hover fareyle bir öğenin üzerine gelindiğinde eşleşir. Telefonda kalıcı bir fare işaretçisi olmadığı için önemli bilgi veya işlem yalnızca hover durumunda ortaya çıkmamalıdır. Bir düğmenin normal hâli zaten anlaşılır olmalı; hover yalnızca etkileşimi desteklemelidir. Klavye için focus-visible durumunu ayrıca düşün.
Transition bir özelliğin eski değerden yeni değere geçişini zamana yayar. “all” yazmak beklemediğin özellikleri de hareketlendirebilir; hangi özelliklerin değişeceğini açıkça listelemek daha kontrollüdür. Kısa ve amaçlı bir renk geçişi, her öğenin hareket etmesinden daha yararlı olabilir.
Bazı kullanıcılar cihazlarında hareketi azaltmayı seçer. prefers-reduced-motion koşuluyla zorunlu olmayan hareketi kapat. Animasyonların bilgiye erişim için şart olmaması, tasarımın hareket olmadan da çalışması gerektiğini gösterir. Hareketi işlev yerine dekorasyon olarak kullanıp dikkati dağıtma.
İlk örneği oku ve dene
Hover ve geçiş efektleri
:hover fare öğenin üzerine geldiğinde uygulanacak stilleri belirler. transition değişimin aniden değil, yumuşakça olmasını sağlar.
<style>
.buton {
background-color: #6366f1;
color: white;
padding: 12px 24px;
border: none;
border-radius: 8px;
transition: transform 0.2s, background-color 0.2s;
}
.buton:hover {
background-color: #4338ca;
transform: scale(1.1);
}
</style>
<button class="buton">Üzerime gel</button>
▶ Sonuç
Mor bir buton görünür; fareyle üzerine gelince koyulaşır ve hafifçe büyür.
Adım adım neden böyle çalışıyor?
- hover bir işaretçi durumudur; tek erişim yolu olarak tasarlanmaz.
- focus-visible klavye odağını görünür kılar.
- transition-property değişecek özelliği sınırlar.
- prefers-reduced-motion kullanıcı tercihine saygı göstermeyi sağlar.
İkinci çözümlü örnek
Kullanıcı etkileşimlerine ölçülü görsel geri bildirim eklemek.
<style>
.dugme{padding:12px 18px;background:#eef2ff;border:1px solid #64748b;transition:background-color .15s}
.dugme:hover{background:#c7d2fe}.dugme:focus-visible{outline:3px solid #245f9e;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.dugme{transition:none}}
</style>
<button class="dugme">Kaydet</button>
▶ Sonuç
Fare üzerine gelince rengi değişen, klavyeyle odaklanınca belirgin çerçevesi olan düğme.
Kolaydan zora sen dene
- Yalnızca background-color için kısa geçiş ekle.
- Fare kullanmadan Tab ile düğmeye ulaş.
- Hareket azaltma tercihini aç ve geçişin kapandığını doğrula.
İpucunu aç
Önce hareket olmadan anlaşılır düğmeyi kur, sonra geçişi ekle.
Üç görevin açıklamalı çözümünü oku
- transition içinde yalnızca amaçlanan özelliği listele.
- Tab ile görünür focus-visible işaretini doğrula.
- prefers-reduced-motion:reduce koşulunda zorunlu olmayan geçişi kapat.
Bir çözüm varyasyonu gör
Çözüm varyasyonu
Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.
<style>a{color:#245f9e;text-decoration:underline}a:focus-visible{outline:2px solid currentColor;outline-offset:4px}</style>
<a href="#sonuc">Sonuç bölümüne git</a><p id="sonuc">Hedef burası.</p>
▶ Sonuç
Altı çizili ve klavye odağı görünen bağlantı.
Yaygın hata ve çözümü
- outline:none verip yerine görünür odak eklememek klavye kullanıcısını kaybettirir.
- Hover ile açılan tek düğmeyi telefonda kullanıcı bulamayabilir; normal görünümde erişilebilir bırak.
Kendini değerlendir
Ezberlemeden açıklayabiliyor musun?
Hover neden tek başına yeterli etkileşim göstergesi değildir?
Açıklamalı yanıt
Dokunmatik ve klavye kullanan kişiler hover durumuna aynı şekilde erişmeyebilir.
Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.
Kaynak ve çalışma ortamı
Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.
Resmî dil belgeleriBu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.