2012-02-13 3 views
0

アイテムのリストを持つナビゲーションバーがあります。アイテムメニューのハイライトを保持する方法

htmlコード

<div id="main-menu"> 
      <ul div="nav"> 
       <li><a href="about.html" target="_blank">ABOUT</a></li> 
       <li><a href="services.html" target="_blank">SERVICES</a></li> 
       <li><a href="portfolio.html" target="_blank">PORTFOLIO</a></li> 
       <li><a href="blog.html" target="_blank">BLOG</a></li> 
       <li><a href="contact.html" target="_blank">CONTACT</a></li> 
      </ul> 
    </div> 

IやったCSSコード、次の

CSSコード:

私は、メニューの項目の色を維持する必要が
a:link { 
    color: #000000; 
    text-decoration: none; 
} 

a:active { 
    color:#000000; 
    text-decoration: none; 
} 

a:visited { 
    color: #000000; 
    text-decoration: none; 
} 

a:hover { 
    color: #CE1F20; 
    text-decoration: none; 
} 

がために「#のCE1F20私がページにいるのと同じように、たとえば、サービスページをクリックするとサービスページに移動しますが、サービスページの「#CE1F20」の色を維持する必要があります。ブログに移動するとブログの色を " #CE1F20 "などとなります。

+0

あなたはどんなサーバーサイド言語e php?またはすべての静的HTML? – ggreiner

+0

@ggreinerのみcssとhtml。 –

+0

あなたの質問は矛盾しているようです。私は、すべてのメニューリンクのターゲット属性が '_blank'であることに気付きました。つまり、リンクが新しいウィンドウで開きます。新しいウィンドウを開いている場合、リンクがバックグラウンドウィンドウにハイライト表示されているかどうかは重要ですか? – Feysal

答えて

1

それはすべての静的なので、あなたがその色を持つクラスを作成し、各ページの適切なリンクをクラスを設定する必要があります。言い換えれば

、サービスページにナビゲーションバーが含まれます:

<li><a href="services.html" target="_blank" class="currentTab">SERVICES</a></li> 
+0

あなたが私に言ったことをしました。それはメニューがインデックスページに来ているので結果を出す、あなたの助けを借りれば、赤でリンクについては色づけされ、もう一方は黒で、あなたはページ上にあるという印象を与える真実はインデックスページ –

+0

にありがとうございます。本当に助けになります。 –

-1

PHPを使用している場合は、変数を使用してページがアクティブであることを示すことができます。ページがアクティブである場合

<div id="main-menu"> 
      <ul div="nav"> 
       <li><a <?php echo $isactive; ?> href="about.html" target="_blank">ABOUT</a></li> 
       <li><a <?php echo $isactive; ?> href="services.html" target="_blank">SERVICES</a></li> 
       <li><a <?php echo $isactive; ?> href="portfolio.html" target="_blank">PORTFOLIO</a></li> 
       <li><a <?php echo $isactive; ?> href="blog.html" target="_blank">BLOG</a></li> 
       <li><a <?php echo $isactive; ?> href="contact.html" target="_blank">CONTACT</a></li> 
      </ul> 

次に、あなたは "クラス= 'active_section'" のようなものを印刷して、あなたのCSSの可能性:あなたのページのそれぞれにおいて

.active_section { 
color: #CE1F20; 
text-decoration: none; 

}

+0

OPはPHPを使用していません。質問のコメントを確認してください。 –

+0

答えを得る前に投稿 –

2

、ANを追加します対応するメニュー項目に「アクティブ」クラス:

たとえば、about.htmlの場合、 'ABOUT'リンクに「アクティブ」クラスを追加します:

<div id="main-menu"> 
      <ul div="nav"> 
       <li><a class="active" href="about.html" target="_blank">ABOUT</a></li> 
       <li><a href="services.html" target="_blank">SERVICES</a></li> 
       <li><a href="portfolio.html" target="_blank">PORTFOLIO</a></li> 
       <li><a href="blog.html" target="_blank">BLOG</a></li> 
       <li><a href="contact.html" target="_blank">CONTACT</a></li> 
      </ul> 
    </div> 

次に、CSSで「アクティブ」のスタイルを定義します。

a.active{ 
    color: #CE1F20; 
} 
+0

私はあなたが私に言ったことをしました。それは、メニューがインデックスページに来ているので、結果が出ます。あなたの助けを借りて、赤色のリンクについては色をつけて、もう一方は黒色になります。それは、あなたが真実である間にあなたがページ上にいるという印象を与えます。 index page –

+0

だから、 "index.html"というファイルと "about.html"と "services.html"というファイルがあると仮定するのは安全でしょうか?その場合は、index.html内のメニューにクラスを追加しないでください。私が上記で提案した変更は、「約」のためのものでした。html "と入力し、他のhtmlファイルのそれぞれに対応する変更を加えてください。 – ggreiner

+0

はい、正解です。ありがとうございました。私はそのことについてお伝えしました。申し訳ありませんが、インデックスから始めるのは間違いでした。 –

0

することは、このようなあなたのCSSを配置しようとすると:

{ // CSS }

この意志すべてのリンクに同じスタイルを適用し、アクティブな各リンクにCSSクラス「アクティブ」広告を追加してください。

関連する問題