Apakah boleh menggunakan tag jangkar tanpa menyertakan href
atribut, dan sebagai gantinya menggunakan pengendali event klik JavaScript? Jadi saya akan menghilangkan href
sepenuhnya, bahkan tidak memilikinya kosong ( href=""
).
232
<span>
elemen paling pasti dapat dinavigasi melalui keyboard . Anda juga bisa membuatnya sehingga<a>
elemen tidak dapat dinavigasi melalui keyboard .Jawaban:
Di HTML5, menggunakan
a
elemen tanpahref
atribut valid. Itu dianggap sebagai "hyperlink placeholder."Contoh:
Cari "hyperlink placeholder" di halaman referensi tag anchor w3c: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
Dan itu juga disebutkan di wiki di sini: https://www.w3.org/wiki/Elements/a
Tautan placeholder adalah untuk kasus-kasus di mana Anda ingin menggunakan elemen jangkar, tetapi tidak menavigasi ke mana pun. Ini berguna untuk menandai halaman saat ini di menu navigasi atau jejak remah roti. (Pendekatan lama seharusnya menggunakan tag rentang atau tag jangkar dengan kelas bernama "aktif" atau "saat ini" untuk menatanya dan JavaScript untuk membatalkan navigasi.)
Tautan placeholder juga berguna dalam kasus di mana Anda ingin menetapkan tujuan tautan secara dinamis melalui JavaScript saat runtime. Anda cukup mengatur nilai atribut href, dan tag anchor menjadi dapat diklik.
Lihat juga:
sumber
href
itucursor: pointer
gaya tidak akan otomatis ditambahkan ke elemen.Tidak apa-apa, tetapi pada saat yang sama dapat menyebabkan beberapa browser menjadi lambat.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Saran saya adalah gunakan <a href="#"> </a>
Jika Anda menggunakan JQuery ingat juga untuk menggunakan:
sumber
Jawaban singkat: Tidak.
Jawaban panjang:
Pertama, tanpa atribut href, itu tidak akan menjadi tautan. Jika itu bukan tautan maka itu tidak akan dapat diakses dengan keyboard (atau tombol napas, atau berbagai perangkat input lain yang tidak berbasis pointer) (kecuali jika Anda menggunakan fitur HTML 5
tabindex
yang tidak didukung secara universal). Sangat jarang bahwa itu sesuai untuk kontrol untuk tidak memiliki akses keyboard.Kedua. Anda harus memiliki alternatif ketika JavaScript tidak berjalan (karena lambat memuat dari server, koneksi Internet terputus (mis. Sinyal seluler di kereta bergerak), JS dimatikan, dll, dll.).
Menggunakan peningkatan progresif oleh JS yang tidak mencolok.
sumber
href
wajib (kecuali jika itu adalah jangkar bernama dalam hal tabindex tidak masuk akal). Penggunaantabindex
untuk menambahkan elemen yang tidak fokus ke urutan tab adalah inovasi baru dalam HTML 5.a
tag tanpahref
atribut.Jika Anda harus menggunakan href untuk kompabilitas mundur, Anda juga dapat menggunakan
alih-alih #, jika Anda tidak ingin menggunakan atribut
sumber
Tag tersebut boleh digunakan tanpa atribut href. Berlawanan dengan banyak jawaban di sini, sebenarnya ada alasan standar untuk membuat jangkar ketika tidak ada href. Secara semantik, "a" berarti jangkar atau tautan. Jika Anda menggunakannya untuk sesuatu yang mengikuti makna itu, maka Anda baik-baik saja.
Salah satu standar penggunaan tag tanpa href adalah membuat tautan bernama. Ini memungkinkan Anda untuk menggunakan jangkar dengan nama = bla dan nanti Anda dapat membuat jangkar dengan href = # bla untuk menautkan ke bagian bernama dari halaman saat ini. Namun, ini sudah usang karena Anda juga dapat menggunakan ID dengan cara yang sama. Sebagai contoh, Anda bisa menggunakan tag tajuk dengan id = tajuk dan nantinya Anda bisa memiliki jangkar yang menunjuk ke href = # tajuk.
Maksud saya, bagaimanapun, bukan untuk menyarankan menggunakan properti nama. Hanya untuk menyediakan satu kasus penggunaan di mana Anda tidak memerlukan href, dan karena itu alasan mengapa tidak diperlukan.
sumber
href
atribut untuk<a>
elemen yang digunakan sebagai elemen interaktif (yaitu tautan). Seperti yang Anda sebutkan, tanpahref
atribut itu cukup sederhana ... bukan tautan, hanya jangkar, yang merupakan hal yang berbeda sama sekali.Dari perspektif aksesibilitas
<a>
tanpa href tidak dapat-tab, semua tautan harus bisa-tab jadi tambahkan tabindex = '0 "jika Anda tidak memiliki href.sumber
The
<a>
tag tanpa "href" dapat berguna ketika menggunakan menu multi-level dan Anda perlu untuk memperluas tingkat berikutnya tetapi tidak ingin bahwa label menu untuk menjadi link aktif. Saya tidak pernah memiliki masalah menggunakannya dengan cara itu.sumber
Di beberapa browser Anda akan menghadapi masalah jika Anda tidak memberikan atribut href. Saya sarankan Anda untuk menulis kode Anda seperti ini:
Anda dapat mengganti kode Anda () dengan fungsi atau logika Anda sendiri, tetapi jangan lupa untuk menambahkan return false; pernyataan di akhir.
sumber
#
untuk halaman indeks. Untuk beberapa tautan navbar saya, saya tidak ingin memicu rute ke#
mana yang terjadi jika Anda menggunakannyaa href="#"
dengan sendirinya. Menggunakan<a href="#" onclick="return false;"
menghentikan rute yang dipicu tetapi acara klik masih menggelembung ke handler saya (yang menggunakan acara DOM terhubung melalui jQuery dan Backbone.Radio). Terima kasih @ shashwat13 :)