Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 7 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

Button ile bağlantı etiketi ne zaman kullanılmalıdır?​


Bir kullanıcıyı başka bir adrese, sayfaya veya belgeye götürüyorsanız <a> bağlantı etiketini kullanın. Sayfa üzerinde bir işlem başlatıyor, veriyi gönderiyor, bir alanı açıp kapatıyor veya JavaScript ile mevcut içeriğin durumunu değiştiriyorsanız <button> kullanın. Kısaca: navigasyon için bağlantı, eylem için button.

Temel fark nasıl çalışır?​


<a href="..."> tarayıcıya gidilecek hedefi bildirir. Kullanıcı bağlantıyı yeni sekmede açabilir, adresini kopyalayabilir veya tarayıcının geri düğmesini kullanabilir. Bu nedenle başka bir sayfaya ya da indirilecek bir kaynağa yönlendirme, bağlantının doğal görevidir.

<button> ise tek başına bir hedef adres taşımaz; bir eylem için kullanılır. Bir formu gönderebilir, formu temizleyebilir veya bir JavaScript işleyicisini çalıştırabilir. JavaScript devre dışı bırakıldığında çalışması gereken bir sayfa geçişini button ile taklit etmek doğru değildir.

Kısa ve çalıştırılabilir örnek​


Aşağıdaki HTML parçası örnektir. Görünümü bir HTML dosyasında inceleyebilirsiniz; formun gerçek HTTP isteği göndermesi için çalışan bir test sunucusu ve /arama rotası gerekir:

Kod:
<style>
  input, button, summary { border-radius: 4px; }
  input { max-width: 100%; box-sizing: border-box; }
</style>
<form action="/arama" method="get">
  <label for="q">Arama</label>
  <input id="q" name="q" type="search">
  <button type="submit">Ara</button>
  <button type="reset">Temizle</button>
</form>

<p>
  <a href="/iletisim">İletişim sayfasına git</a>
</p>

<details>
  <summary>Teknik ayrıntıyı göster</summary>
  <p>Bu içerik mevcut sayfada açılıp kapanır.</p>
</details>

Arama alanına metin yazıp Ara düğmesine bastığınızda tarayıcı /arama?q=... biçiminde bir GET isteği hazırlar. Temizle alanları başlangıç değerlerine döndürür; bu örnekte başlangıç değeri boş olduğundan alan boşalır. İletişim sayfasına git başka bir konuma yönlendirir. <details> ise mevcut sayfadaki içeriğin durumunu değiştirir; bu örnekte ayrıca JavaScript gerekmez.

Gerçek uygulamanızda /arama adresi sunucuda yoksa form gönderiminden sonra hata veya bulunamayan sayfa görebilirsiniz. Bu durumda button türü yanlış değildir; formun action hedefinin çalışan bir sunucu rotası olması gerekir. Yalnızca görsel bir tasarım elde etmek için bağlantıyı button, button'ı da bağlantı gibi kullanmak bu sorunu çözmez.

Karar vermek için pratik ölçüt​


Aşağıdaki ayrım, HTML elemanını seçerken yeterlidir:

İhtiyaçKullanılacak elemanÖrnek
Başka sayfaya veya bölüme gitmek<a>Ürün ayrıntılarına git
Form verisini göndermek<button type="submit">Kaydol
Mevcut içeriği açıp kapatmak<button type="button"> veya uygun yerleşik elemanFiltreleri göster
Form alanlarını sıfırlamak<button type="reset">Temizle
Dosya veya harici kaynağa yönlendirmek<a>Belgeyi indir

Uygulama adımları​


  1. Kullanıcı tıkladığında yeni bir adres açılacaksa <a href="..."> yazın ve anlaşılır bağlantı metni kullanın.
  2. Tıklama mevcut sayfanın durumunu değiştirecekse <button type="button"> kullanın ve gereken davranışı JavaScript ile bağlayın.
  3. Bir <form> içindeki düğmenin amacını açıkça belirtin. Gönderme düğmesine type="submit", alanları sıfırlayana type="reset", başka bir işlem yapana type="button" verin.
  4. Erişilebilirlik denetimi yapın: klavyeyle Tab tuşuna ulaşabilmeli, Enter bağlantıyı çalıştırmalı, düğme de odaklandığında Space veya Enter ile etkinleşebilmelidir. Görünüşü değiştirmek için semantik etiketi değiştirmeyin.
  5. Tıklama davranışını test edin. Bağlantı yeni hedefe gitmiyorsa href değerini ve sunucu rotasını; button beklenen işlemi yapmıyorsa form olayını veya JavaScript bağlantısını inceleyin.

Sık sorulan sorular​


Bağlantı için href yerine button kullanmak sorun yaratır mı?​

Evet. JavaScript çalışmadığında sayfa geçişi gerçekleşmeyebilir; ayrıca kullanıcı bağlantıyı yeni sekmede açma veya adresini kopyalama gibi tarayıcı özelliklerini beklediği şekilde kullanamaz. Gerçek hedef bir adresse doğrudan <a> kullanın.

Bir button neden formu istemeden gönderiyor?​

Form içindeki türü belirtilmeyen button, tarayıcı tarafından gönderme düğmesi olarak yorumlanabilir. Form göndermeyen düğmelere açıkça type="button" yazın.

Bağlantıyı CSS ile button görünümüne çevirmek doğru mu?​

Evet. Görsel tasarım ile HTML anlamı ayrı konulardır. Bir <a> elemanını CSS ile düğme gibi gösterebilirsiniz; ancak işlevi hâlâ bağlantı olarak kalmalı ve href içermelidir.
 

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