href
Özniteliği eklemeden bir bağlantı etiketi kullanmak ve bunun yerine bir JavaScript tıklama etkinliği işleyicisi kullanmak uygun mudur? Bu yüzden href
boş bırakmamalıyım ( href=""
).
href
Özniteliği eklemeden bir bağlantı etiketi kullanmak ve bunun yerine bir JavaScript tıklama etkinliği işleyicisi kullanmak uygun mudur? Bu yüzden href
boş bırakmamalıyım ( href=""
).
Yanıtlar:
HTML5'te, niteliği a
olmayan bir öğenin kullanılması href
geçerlidir. "Yer tutucu köprü" olarak kabul edilir.
Misal:
<a>previous</a>
W3c bağlantı etiketi referans sayfasında "yer tutucu köprüsü" araması yapın : https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
Ve burada wiki'de de bahsedildi: https://www.w3.org/wiki/Elements/a
Yer tutucu bağlantısı, bir bağlantı öğesi kullanmak istediğiniz ancak herhangi bir yere gitmesini istemediğiniz durumlar içindir. Bu, bir navigasyon menüsünde veya kırıntı izinde geçerli sayfayı işaretlemek için kullanışlıdır. (Eski yaklaşım, "etkin" veya "geçerli" adlı bir sınıfa sahip bir yayılma etiketi veya bağlantı etiketi veya gezinmeyi iptal etmek için JavaScript kullanmak olurdu.)
Yer tutucu bağlantısı, bağlantının hedefini çalışma zamanında JavaScript aracılığıyla dinamik olarak ayarlamak istediğiniz durumlarda da kullanışlıdır. Href özelliğinin değerini ayarlamanız yeterlidir ve bağlantı etiketi tıklanabilir hale gelir.
Ayrıca bakınız:
href
cursor: pointer
Tamam, ancak aynı zamanda bazı tarayıcıların yavaşlamasına neden olabilir.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Tavsiyem <a href="#"> </a> kullanmaktır
JQuery kullanıyorsanız şunları da kullanmayı unutmayın:
.click(function(event){
event.preventDefault();
// Click code here...
});
Kısa cevap: Hayır.
Uzun cevap:
İlk olarak, bir href özelliği olmadan, bir bağlantı olmayacaktır. Bir bağlantı değilse, ( tabindex
evrensel olarak desteklenmeyen HTML 5 özelliklerini kullanmadığınız sürece) klavye (veya nefes anahtarı veya işaretçi tabanlı olmayan çeşitli giriş aygıtları) erişilebilir olmayacaktır. Bir kontrolün klavye erişimine sahip olmamasının uygun olması çok nadirdir.
İkinci. JavaScript'in çalışmadığı zamanlarda bir alternatifiniz olmalıdır (sunucudan yüklenmesi yavaş olduğu için bir İnternet bağlantısı kesildi (örn. Hareket eden bir trende mobil sinyal), JS kapalı, vb.).
Yararlanın Kademeli iyileştirmelerle tarafından mütevazi JS.
href
zorunluydu (adlandırılmış bir çapa olmadığı sürece, bu durumda tabindex anlamlı değildi). Kullanımı tabindex
sekme sırasına unfocusable unsurları eklemek için HTML 5 yeni yenilik
a
etikete sahip olmak gerçekten mükemmel bir şekilde geçerlidir href
.
Etiket, href özelliği olmadan kullanmak için uygundur. Buradaki cevapların çoğunun aksine, href olmadığında çapa oluşturmanın standart nedenleri vardır. Anlamsal olarak, "a" bir çapa veya bir bağlantı anlamına gelir. Eğer bu anlamı takip eden herhangi bir şey için kullanırsanız, o zaman iyisinizdir.
Href içermeyen bir etiketin standart kullanımı, adlandırılmış bağlantılar oluşturmaktır. Bu, name = blah ile bir çapa kullanmanıza izin verir ve daha sonra geçerli sayfanın adlandırılmış bölümüne bağlantı oluşturmak için href = # blah ile bir çapa oluşturabilirsiniz. Ancak, aynı şekilde kimlikleri de kullanabileceğiniz için bu kullanımdan kaldırılmıştır. Örnek olarak id = header içeren bir başlık etiketi kullanabilir ve daha sonra href = # header'ı gösteren bir tutturucunuz olabilir.
Ancak benim amacım name özelliğinin kullanılmasını önermemek değil. Sadece bir href'e ihtiyacınız olmayan bir kullanım durumu sağlamak ve bu nedenle neden gerekli olmadığını düşünmek için.
href
bir <a>
öğenin niteliğini atlamanın güvenli olup olmadığıdır . Bahsettiğiniz gibi, bir özellik olmadan oldukça basit ... bir bağlantı değil, sadece bir çapa, ki bu tamamen farklı bir şey. href
<a>
Bir href olmadan erişilebilirlik perspektifinden sekme mümkün değildir, bu yüzden bir href'iniz yoksa bir tabindex = '0 "ekleyin.
<a>
Çok seviyeli menülerini kullanırken "href" olmadan etiketi kullanışlı olabilir ve bir sonraki seviyeye genişletmek gerekir ama bu menü etiket aktif halka olmak istemiyoruz. Hiç böyle bir sorunla karşılaşmadım.
Bazı tarayıcılarda href özelliği vermiyorsanız sorunlarla karşılaşırsınız. Kodunuzu böyle bir şey yazmanızı öneririm:
<a href="#" onclick="yourcode();return false;">Link</a>
kodunuzu () kendi işleviniz veya mantığınızla değiştirebilirsiniz, ancak return false eklemeyi unutmayın; Sonunda ifade.
#
ve dizin sayfası için var. Navbar bağlantılarımdan bazıları için, kendi başınıza kullanırsanız #
olan rotayı tetiklemek istemiyorum a href="#"
. Kullanmak <a href="#" onclick="return false;"
rotanın tetiklenmesini durdurur ancak click olayı yine de işleyicime (jQuery ve Backbone.Radio ile bağlanmış DOM olaylarını kullanan) kadar kabarcıklar oluşturur. Teşekkürler @ shashwat13 :)