2012-01-23 7 views
7

私はコンテンツトラフajaxを引き出すボタンのように動作するリンクをいくつか持っているので、私はこれを聞いています。だから私はそれらにhrefは必要ありません。リンクにhrefが必要ですか?

答えて

7

リンクにhrefが必要ですか?

はい。 href属性のないアンカーはリンクではありません。

私はあなたがそれをやっている場合は、右のそれを行う、コンテンツトラフアヤックス

を引き出し、ボタンのように動作するいくつかのリンクを持っているので、私はこれを聞いていますのよ。 Unobtrusive JavaScriptpushStateを使用してください。

ポインティングデバイスを使用していて、JSをオンにしている場合にのみ機能する「リンク」は適切なリンクではありません。

私は

検索エンジンはあなたのJavaScriptを実行しないので、(JSに依存)擬似リンクは限り無のちょうどブラックホールですSEOの観点からこれを聞いていますのよ彼らは懸念している)。

+2

あまりにも厳しいとはいえ、黒と白すぎます。 –

1

を(私はSEOの観点からこれを求めている)彼らが絶対的に必要としていない、しかし、あなたはおそらく、それが意味的に正しい作るためのhrefとしてhref="#/"を置く必要があります。 href=""属性がないと、特にname=""属性が指定されている場合、アンカーはページ内のブックマークとして解析される可能性があります。

+1

私はあなただけで、 '#の'原因を使用して、 '#/'を使用することをお勧めブラウザはページの上部にジャンプする –

+0

@MyHeadHurtsお勧めします。私の答えを編集しました。 – Bojangles

+0

存在しないページの一部をより便利にリンクすることをお勧めします。 – Quentin

25

私は「リンク」によってあなたは単にa要素を意味すると仮定しています。それはその後、本当場合:少なくとも、ないHTML5 draft specification

番号:

要素は何href属性を持っていない場合は、その要素はリンクがそれ以外に置かれている可能性がありますため プレースホルダを表し、もしそれが であったならば、 HTML 4.01 specificationから

著者はまた、HREF、名前またはIDを指定していない何アンカーを指定していない要素、すなわち、 を作成することができます。これらの属性の値 は、後でスクリプトで設定することができます。

+1

これはOPの状況と一致しません。 OPはプレースホルダのリンクを望んでいない、彼女はボタンが欲しい。 (ああ、以前のHTMLバージョンでも 'a @ href'は必要ありませんでした) –

+1

それは本当です。しかし、 "リンクにhrefが必要かどうか"という質問に対する答えは "いいえ"です。そのようなリンクの使い方の意味に関する疑問は、全く別の質問です。 OPコードは 'href'属性のない検証テストに合格します。 –

+0

まあ、いいえ。技術的には、それが 'href'属性を含んでいない場合でもリンクさえありません。 –

2

いいえ、それはありません。しかし、hrefが設定されていないと、リンクが異なる(下線と色)になることがあります。

2

確かに分かりませんが、以前はhrefのない「a」に問題がありました...クリックがうまくいかなかったのです。しかし、たぶん古いブラウザだったかもしれません。

4

ボタンのように動作するリンクがある場合は、おそらく<button>要素を使用しているはずです。

2

仕様によると、hrefを省略したときにブラウザが異なるデフォルトのスタイル設定(たとえば、カーソルをポインタに変更しない)を実装していることがわかります。ダミーのhrefを追加する最も一般的なアプローチは、それが必須ではありませんが、あなたも彼らが本当にタグを固定していないのhrefせず、ため、アンカータグにHREFを追加する必要があります

href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page 

href="javascript:void()" // has the advantage of having no annoying default behaviour 
+0

よくあるがひどい。百万個のハエがいるだけなので、肥料で遊んではいけません。 – Quentin

0

です。

リンクに「#」を追加して、onClick = 'return false;'を追加することができます。クリックイベントを防止します。 JQueryを使用している場合は、リンクのクリックハンドラーにevent.preventDefault()を追加できます。

SEOの観点から、私は(-veテキストのインデントプロパティを避ける。)アンカータグのタイトルを使用して行くと思い

関連する問題