href
属性を含めずに、JavaScriptクリックイベントハンドラーを使用してアンカータグを使用しても問題ありませんか?したがって、href
完全に省略しhref=""
ます。空にすることもできません()。
href
属性を含めずに、JavaScriptクリックイベントハンドラーを使用してアンカータグを使用しても問題ありませんか?したがって、href
完全に省略しhref=""
ます。空にすることもできません()。
回答:
HTML5では、属性のa
ない要素の使用href
は有効です。「プレースホルダーハイパーリンク」と見なされます。
例:
<a>previous</a>
w3cアンカータグのリファレンスページで「プレースホルダーハイパーリンク」を探します:https ://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element 。
そして、それはここのwikiでも言及されています:https: //www.w3.org/wiki/Elements/a
プレースホルダーリンクは、アンカー要素を使用したいが、どこにも移動させない場合に使用します。これは、ナビゲーションメニューまたはパンくずリストで現在のページをマークアップするのに便利です。(古いアプローチでは、「アクティブ」または「現在」という名前のクラスでスパンタグまたはアンカータグを使用してスタイルを設定し、JavaScriptでナビゲーションをキャンセルしていました。)
プレースホルダーリンクは、実行時にJavaScriptを介してリンクのリンク先を動的に設定する場合にも役立ちます。href属性の値を設定するだけで、アンカータグがクリック可能になります。
以下も参照してください。
href
、cursor: pointer
スタイルが要素に自動的に追加されないことに注意してください。
大丈夫ですが、同時に一部のブラウザが遅くなる可能性があります。
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
私のアドバイスは、<a href="#"> </a>を使用することです
JQueryを使用している場合は、次も使用することを忘れないでください。
.click(function(event){
event.preventDefault();
// Click code here...
});
短い答え:いいえ。
長い答え:
まず、href属性がないと、リンクにはなりません。リンクでない場合、キーボード(またはブレススイッチ、またはその他のさまざまなポインターベースではない入力デバイス)からアクセスできません(HTML 5の機能がtabindex
普遍的にサポートされていない場合を除く)。コントロールがキーボードアクセスを持たないことが適切であることは非常にまれです。
二番目。JavaScriptが実行されない(サーバーからの読み込みが遅い、インターネット接続が切断された(移動中の電車の携帯信号など)、JSがオフになっているなど)ための代替手段が必要です。
href
必須です(それが名前付きアンカーで、tabindexが意味をなさない場合を除く)。使用tabindex
タブ順序にunfocusable要素を追加するには、HTML 5の新しい技術革新である
a
、href
属性のないタグがあることは確かに完全に有効です。
タグは、href属性なしで使用しても問題ありません。ここでの回答の多くに反して、hrefがないときにアンカーを作成する標準的な理由があります。意味的には、「a」はアンカーまたはリンクを意味します。その意味に続くものにそれを使用する場合は、問題ありません。
hrefなしのaタグの標準的な用途の1つは、名前付きリンクを作成することです。これにより、name = blahでアンカーを使用でき、後でhref =#blahでアンカーを作成して、現在のページの名前付きセクションにリンクできます。ただし、同じ方法でIDを使用することもできるため、これは廃止されました。例として、id = headerでヘッダータグを使用し、後でhref =#headerを指すアンカーを使用できます。
ただし、私のプロパティは、nameプロパティの使用を提案することではありません。hrefを必要としないユースケースを1つだけ提供するため、hrefが必要でない理由を推論します。
href
属性を省略しても安全かどうかだと思います。おっしゃるように、属性がなければ、それは非常に単純です...リンクではなく、単なるアンカーです。これは、まったく別のものです。<a>
href
アクセシビリティの観点からは<a>
、hrefがないとタブに対応できないため、すべてのリンクはタブに対応する必要があるため、hrefがない場合はtabindex = '0 "を追加します。
<a>
マルチレベルのメニューを使用する場合、「HREF」のないタグは便利なことができ、あなたは次のレベルを展開する必要があるが、そのメニューラベルがアクティブリンクになりたくありません。私はそれをそのように使用することに問題を経験したことがありません。
一部のブラウザでは、href属性を指定しないと問題が発生します。このようなコードを書くことをお勧めします:
<a href="#" onclick="yourcode();return false;">Link</a>
yourcode()を独自の関数またはロジックに置き換えることができますが、必ずfalseを追加してください。最後にステートメント。
#
おり、インデックスページを持っています。私のnavbarリンクのいくつかについては、それ自体#
を使用a href="#"
した場合に何が起こるかというルートをトリガーしたくありません。を使用<a href="#" onclick="return false;"
すると、ルートのトリガーが停止しますが、クリックイベントは引き続きハンドラー(jQueryおよびBackbone.Radioを介してフックされたDOMイベントを使用します)に送られます。ありがとう@ shashwat13 :)