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 :focus, klavye, fare, dokunmatik giriş veya başka bir yöntemle o anda kullanıcı etkileşimine hazır olan öğenin stilini seçen sözde sınıftır. En sık form alanlarında, düğmelerde ve bağlantılarda kullanılır. Örneğin bir kullanıcı Tab tuşuyla bir bağlantıya geldiğinde, bağlantıya :focus ile verilen kenarlık veya arka plan görünür.

Focus, yalnızca görsel bir durum değildir; klavye kullanıcılarının sayfada hangi öğenin seçili olduğunu anlamasını sağlar. Bu nedenle varsayılan odak göstergesini tamamen kaldırmak yerine, yeterince belirgin bir özel görünüm vermek gerekir.

En küçük çalışır örnek​


Aşağıdaki dosyayı focus.html adıyla kaydedip tarayıcıda açın:

Kod:
<button class="action-button" type="button">Kaydet</button>

<style>
.action-button {
  padding: 0.6rem 1rem;
  border: 1px solid #555;
  border-radius: 4px;
  background: white;
  color: #111;
}

.action-button:focus {
  outline: 3px solid #1769aa;
  outline-offset: 3px;
}
</style>

Sayfa açıkken Tab ile düğmeye gelin; mavi odak çerçevesi görünmelidir. Fare tıklamasının düğmeye odak vermesi tarayıcı ve işletim sistemine göre değişebilir; klavye denemesini esas alın. Çerçeve görünmüyorsa CSS dosyasının veya style bloğunun gerçekten yüklendiğini, seçicinin sınıf adıyla eşleştiğini ve tarayıcıda başka bir kuralın outline değerini ezmediğini kontrol edin.

Bu örnekte outline kullanılması, öğenin sayfa düzenindeki boyutunu değiştirmeden odak göstergesi ekler. outline: none veya outline: 0 kullanmak çerçeveyi kaldırır; yerine açıkça görülebilen başka bir gösterge eklenmeden bunu yapmak klavye gezinmesini zorlaştırır.

Hangi focus seçicisi kullanılmalı?​


İhtiyaca göre seçiciyi seçin:

SeçiciNe zaman çalışır?Tipik kullanım
:focusÖğe odaklandığı her durumdaGenel ve uyumlu odak stili
:focus-visibleTarayıcı odak göstergesinin özellikle görünür olması gerektiğine karar verdiğindeKlavye odaklanmasını fare tıklamasından ayırmak
:focus-withinÖğenin kendisi veya içindeki bir öğe odaklandığındaForm grubunu ya da menü kapsayıcısını vurgulamak

Genel bir tasarım için :focus-visible tercih edilebilir; ancak odak stilinin her odaklanma yönteminde görünmesi gerekiyorsa :focus kullanın. Örneğin:

Kod:
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #1769aa;
  outline-offset: 3px;
}

Uygularken dikkat edilecek noktalar​


  1. Etkileşime açık öğeleri, özellikle button, a, input, select ve textarea öğelerini klavye ile Tab tuşuyla sırayla test edin.
  2. Odak göstergesini arka plandan ve öğenin kendi renginden ayırt edilebilecek şekilde tasarlayın. Yalnızca renk değişimine güvenmek yerine outline, kenarlık veya belirgin bir arka plan kullanın.
  3. Odaklanan öğenin çevresindeki çerçevenin üstü, altı veya yanındaki içerik tarafından kesilmediğini kontrol edin. Gerekirse kapsayıcının overflow davranışını ve boşluklarını düzenleyin.
  4. Özel bileşenlerde odak stilini yalnızca kapsayıcıya değil, gerçekten klavye odağını alan öğeye uygulayın. Grup da vurgulanacaksa buna ek olarak :focus-within kullanın.
  5. Fareyle tıklayın, Tab ile gezin ve form alanlarına yazı girin. Bir yöntemde görünmeyen gösterge varsa seçtiğiniz :focus veya :focus-visible davranışını yeniden değerlendirin.

Sık yapılan hatalar​


Varsayılan outline’ı kaldırmak: outline: none yazıp yerine alternatif vermemek, odaklanan öğeyi görünmez hâle getirir.

Yalnızca :hover tasarlamak: Fareyle üzerine gelme durumu klavye odağının yerini tutmaz. Aynı etkileşimli öğeler için ayrıca focus stili tanımlayın.

Yanlış öğeyi seçmek: .menu:focus yalnızca menü kapsayıcısı odaklanabiliyorsa etkili olur. İçindeki bağlantı odaklanıyorsa .menu:focus-within veya bağlantının kendisi için a:focus gerekir.

Odak ile seçili durumu karıştırmak: :focus, öğenin o anda giriş odağında olduğunu belirtir. Bir sekmenin kalıcı olarak aktif olması veya bir seçeneğin işaretli bulunması için ayrıca uygun HTML durumu ve ayrı CSS kullanın.

Kaynaklar​



Sık sorulan sorular​


Focus yalnızca form alanlarında mı kullanılır?​


Hayır. Bağlantılar, düğmeler, özel klavye bileşenleri ve odaklanabilir diğer etkileşimli öğeler için de kullanılır. Odaklanamayan sıradan bir div üzerinde stil tanımlamak tek başına onu klavye ile erişilebilir yapmaz.

Focus stilim neden tıklamadan sonra da görünüyor?​


:focus tüm odaklanma yöntemlerini kapsar; fare tıklaması da odağı öğeye taşıyabilir. Tarayıcının odak göstergesi gereken durumları ayırmasını istiyorsanız :focus-visible kullanmayı değerlendirin. Bu, yalnızca klavye kontrolü değildir; metin alanına fareyle odaklanınca da eşleşebilir.
 

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