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
CSS’te :active, kullanıcının bir bağlantı veya düğme gibi etkileşimli bir öğeyi etkinleştirdiği, yani genellikle fare düğmesine basıp henüz bırakmadığı kısa süre boyunca uygulanan sözde sınıftır. Bu durum, öğeye tıklanıp tıklanmadığını kalıcı olarak göstermez; yalnızca etkinleştirme eyleminin gerçekleştiği anı biçimlendirir.

:active nasıl çalışır?​


Bir kullanıcı düğmeye bastığında tarayıcı ilgili öğeye :active durumunu verir. Kullanıcı basmayı bıraktığında veya etkileşim iptal olduğunda bu durum sona erer. Bu nedenle :active, düğmenin basılı hissini vermek, bağlantının tıklanma anını belirginleştirmek veya kısa süreli görsel geri bildirim sağlamak için kullanılır.

:active durumunu :hover ve :focus ile karıştırmamak gerekir:

Sözde sınıfNe zaman uygulanır?Yaygın kullanım
:hoverİşaretçi öğenin üzerindeykenÜzerine gelme efekti
:focusÖğe klavye veya başka bir giriş yöntemiyle odaklandığındaKlavye erişilebilirliği ve odak göstergesi
:activeÖğe etkinleştirilirken, genellikle basılı tutulduğu andaBasılma veya tıklama geri bildirimi

Bu üç durum birbirinin yerine geçmez. Özellikle :active kullanırken :focus stilini kaldırmak doğru değildir; klavye ile gezinen kullanıcıların hangi öğede olduğunu görebilmesi gerekir.

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


Aşağıdaki dosyayı active-ornek.html adıyla kaydedip tarayıcıda açın. Düğmeye basılı tuttuğunuzda rengi koyulaşır ve hafifçe aşağı hareket eder:

Kod:
<!doctype html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <title>:active örneği</title>
  <style>
    .button {
      padding: 10px 16px;
      border: 0;
      border-radius: 4px;
      background: #1769aa;
      color: white;
      cursor: pointer;
    }

    .button:hover {
      background: #12558a;
    }

    .button:active {
      background: #0d3f66;
      transform: translateY(2px);
    }

    .button:focus-visible {
      outline: 2px solid #111;
      outline-offset: 2px;
    }
  </style>
</head>
<body>
  <button class="button" type="button">Kaydet</button>
</body>
</html>

Uygulama ve kontrol adımları​


  1. Etki vermek istediğiniz bağlantı veya düğmeye bir sınıf ekleyin; örnekte bu sınıf button değeridir.
  2. Normal görünümü sınıf seçicisiyle tanımlayın ve yalnızca basılma anındaki değişiklikleri .button:active içinde yazın.
  3. Dosyayı tarayıcıda açıp düğmeye basılı tutun. Beklenen sonuç, bırakmadan önce koyu arka plan ve 2 piksel aşağı hareket görülmesidir.
  4. Basılı tutarken hiçbir değişiklik görünmüyorsa seçicinin HTML sınıfıyla eşleştiğini ve :active kuralının başka bir CSS kuralı tarafından ezilmediğini denetleyin. Düğmeye yalnızca hızlıca tıklamak, geçici durumu fark etmeyi zorlaştırabilir.
  5. Klavye kullanıcıları için :focus-visible veya uygun bir :focus stili bırakın. :active tek başına kalıcı odak göstergesi değildir.

Bağlantılarda da aynı kullanım geçerlidir: a:active veya belirli bir sınıfla .link:active yazılabilir. Ancak :active bir işlem tamamlandı bilgisini saklamaz. Kullanıcı tıklamayı bıraktıktan sonra kalıcı bir “kaydedildi” veya “seçildi” görünümü gerekiyorsa bu durum JavaScript ya da sunucu tarafından üretilen ayrı bir sınıf/özellik ile yönetilmelidir.

Dokunmatik cihazlarda basılı durumun ne kadar süre ve hangi biçimde görüneceği tarayıcıya ve işletim sistemine bağlı olabilir. Bu yüzden önemli durum bilgisini yalnızca :active rengine veya hareketine bağlamayın; asıl geri bildirimi metin, durum alanı ya da kalıcı bir sınıfla sağlayın.

Kaynaklar​



Sık sorulan sorular​


:active ile bir düğmeyi kalıcı olarak seçili gösterebilir miyim?​


Hayır. :active geçici bir etkileşim durumudur. Kalıcı görünüm için HTML’de bir sınıf, aria-pressed gibi uygun bir durum niteliği veya uygulamanın yönettiği başka bir durum kullanılmalıdır.

:active neden mobil cihazda masaüstündeki gibi görünmüyor?​


Dokunmatik tarayıcılar basma, dokunma ve bağlantı etkinleştirme durumlarını farklı yorumlayabilir. Tasarımın kritik bilgisini yalnızca bu geçici stile dayandırmayın ve sonucu gerçek hedef cihazlarda kontrol edin.
 

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