0

したがって、これがすべてのリンクをページに表示する方法です。

a:link, a:visited {
    text-decoration: none;
    color: blue;
    font-weight: bold;
}

a:hover, a:active {
    text-decoration: underline;
    color: blue;
}

背景が緑(ホバー時に青)の白のリンクがあるDIVの垂直ナビゲーションメニューを除きます。注:このnavMenuは、私のサイトの他のページ( "home.html"、 "contact.html"など)にのみリンクし、相対パス(つまり、ファイル名のみ)を使用します。

#navMenu {
    width: 105px;
    float: left;
    background-color: green;
    margin: 0px;
    padding: 0px;
}

#navMenu > ul {
    list-style-type: none;
    margin: 0px;
    padding: 0px;
    overflow: hidden;
}

#navMenu > ul li {
    display: inline;
    float: left;
    font-size: small;
}

#navMenu > ul li a:link, a:visited {
  display: block;
  width: 130px;
  font-weight: bold;
  color: white;
  background-color: #999900;
  text-align: left;
  padding: 4px;
  text-decoration: none;
  text-transform: uppercase;
}

#navMenu > ul li a:hover, a:active {
    background-color: blue;
}

したがって、navMenu DIVの外部にあるページ内のリンクを見ると、それらのほとんどは(別のサイトの)外部にあり、次のようになります。

<a href="http://somewhere.com">Link</a>

デフォルトの「a」セレクターで定義されているような青色などを使用しています。

しかし(これを入手してください)-相対パスを持つサイトの別のページへのリンク(navMenu DIVの外にある場合でも):

<a href="page2.html">Page 2</a>

navManuフォーマットで処理されています(したがって、テキストは白です)。

しかし、これを入手してください-navMenu DIVの外部にある(内部ページへの)リンクのいずれかを取得し、HREFに「http://」を追加すると、「a」セレクターから取得され、リンクが青色に変わります。

何?

4

1 に答える 1

1

これは、すでにリンクにアクセスしているためです。CSSには、アクセスしたリンクはすべて白で表示される必要があると記載されています。青であるべきだという最初の宣言は上書きされ、これがあなたの問題だと思います。最後の2つの宣言を次のように変更してみてください。

#navMenu > ul li a:link, #navMenu > ul li a:visited {
  display: block;
  width: 130px;
  font-weight: bold;
  color: white;
  background-color: #999900;
  text-align: left;
  padding: 4px;
  text-decoration: none;
  text-transform: uppercase;
}

#navMenu > ul li a:hover, #navMenu > ul li a:active {
  background-color: blue;
}

セレクターの特異性に注意してください。

于 2012-08-21T00:48:57.230 に答える