多くのウェブサイトで というリンクを見かけますhref="#"
。これはどういう意味ですか? 何のために使用されるのですか?
ベストアンサー1
ハイパーリンクについて:
アンカータグの主な用途<a></a>
は、ハイパーリンク基本的には、リンクをクリックするとどこかに移動します。ハイパーリンクにはhref
、場所を指定するプロパティが必要です。
ハッシュ:
ハイパーリンク内のハッシュ - `#` は、ウィンドウをスクロールする HTML 要素 ID を指定します。href="#some-id"
は、現在のページ上の要素までスクロールします<div id="some-id">
。
href="//site.example/#some-id"
site.example
そのページの ID まで移動してスクロールします。
トップにスクロールします:
href="#"
ID 名は指定されませんが、対応する場所 (ページの上部) があります。アンカーをクリックすると、href="#"
スクロール位置が上部に移動します。
これは、w3 ドキュメント。
ハイパーリンクプレースホルダー:
ハイパーリンク プレースホルダーが意味をなす例として、テンプレート プレビューがあります。テンプレートの単一ページのデモでは、<a href="#">
アンカー タグがハイパーリンクであるのに、どこにも移動しないというケースがよく見られます。href
プロパティを空白のままにしないのはなぜでしょうか。空白のhref
プロパティは、実際には現在のページへのハイパーリンクです。つまり、ページの更新を引き起こします。前述したように、href="#"
もハイパーリンクであり、スクロールを引き起こします。したがって、ハイパーリンク プレースホルダーの最適なソリューションは、実際には、href="#!"
ここでの考え方は、ページに要素がないことid="!"
(誰がそんなことをするのでしょう!?) であり、ハイパーリンクは何も参照しないため、何も起こらないというものです。
アンカータグについて:
皆さんが疑問に思うもう 1 つの質問は、「なぜ href プロパティを省略しないのか?」です。私が聞いた一般的な回答は、このhref
プロパティは必須なので、アンカーに「存在」するべきであるというものです。これは誤りです。このhref
プロパティは、アンカーが実際にハイパーリンクになるためにのみ必要です。続きを読むこれはw3からでは、プレースホルダーではこれをオフのままにしないのはなぜでしょうか。ブラウザーは要素のデフォルト スタイルをレンダリングし、href プロパティを持たないアンカー タグのデフォルト スタイルを変更します。代わりに、通常のテキストのように扱われます。要素に関するブラウザーの動作も変わります。href プロパティのないアンカーにマウスを移動しても、ステータス バー (画面の下部) は表示されません。アンカーがハイパーリンクとして扱われるようにするには、アンカーにプレースホルダー href 値を使用するのが最適です。
このデモを見るスタイルと行動の違いを示す。