質問: 擬似クラス「:link」の需要....使い所が分かりません。複数の参考書をまとめると、 「擬似クラス『:link』は、href属性のあるにだけスタイルを適用する。しかし実際のところ、にhref属性をつけないことはまずない」 とのことです。 果たして、にhref属性をつけないシチュエーションなどあるのでしょうか.... もしくは「:link」に適した使いどころがありましたら、ご教示いただけると幸いです。 ※なお、ベストアンサーや各回答へのご返答には約1週間程度を要します。何卒ご容赦ください。
回答: ブラウザはデフォルトでは、href属性の無いa要素は、には青色のリンクで下線がつかず、他のテキストと同じように表示されます。 `a`に対してスタイルを適用した場合、href属性が無い要素に対してもスタイルが適用されます。 `a:link`に対してスタイルを適用した場合は、「未訪問のリンクに対して」スタイルを付けるということになるので、 href属性がある場合のみ適用されます。 `a:link`のスタイルがない場合は`a`のスタイルが継承されますので、 `a`に対してスタイルを適用し、`a:link`を省略した場合は、`a`に付けたスタイルが未訪問のリンクにも適用されます。 これらのことから、ブラウザのデフォルトのスタイルでは、以下のような設定がされていると考えることができます。 ``` a { /* 特になし */ } a:link { color: blue; text-decoration:underline cursor:pointer } a:visited { color: purple; text-decoration:underline cursor:pointer } ``` a要素のhref属性は必須とは定められていないので、href属性の無いa要素は存在できますが、 主要な現在のブラウザのデフォルトのスタイルは、実際に動作するリンク(href属性のあるもの)だけが 区別できたほうがわかりやすいので、上記のように、`a`そのものではなく、 `:link`に対して色がつくようになっているのではないでしょうか(想像ですが) > > 果たして、にhref属性をつけないシチュエーションなどあるのでしょうか.... > > > この疑問は尤もです。 とはいえ、最も重要なのは「存在しても問題はない」という点かと思います。 強いてシチュエーションを考えるのであれば、JSで制御するリンクとしてhrefを無い状態で生成することがあるかもしれませんが...慣習的には`href="#"`としてしまいますね。もしくはbuttonタグを使うか。