2012-04-29 8 views
0

でリンクを選択しました。ハイライトは現在、私はこのURLでページを持っているCSSのメニューバー

<div class="menu_div"> 
    <ul> 
     <li><a href="/progress/c/?l=1&c=1"> l1c1 </a></li> 
     <li><a href="/progress/c/?l=2&c=1"> l1c1 </a></li> 
     <li><a href="/progress/c/?l=3&c=1"> l1c1 </a></li> 
     <li><a href="/progress/c/?l=4&c=1"> l1c1 </a></li> 
    </ul> 
</div> 

CSSのスタイリング私は、背景色の変更が、現在選択されているメニューリンクは青色で強調表示されていないリンクの上にカーソルを移動すると

.menu_div ul 
{ 
    padding:6px; 
    margin:0px; 
    font-size:12px; 
    list-style:none; 
    text-indent:15px; 

} 
.menu_div ul li 
{ 
    line-height:28px; 
    border-bottom:1px solid #000; 
} 
.menu_div ul li a 
{ 
    text-decoration:none; 
    font-color:#3A332D; 
    display:block; 
} 
.menu_div ul li a:hover 
{ 
    background:blue; 
} 
.menu_div ul li#active 
{ 
    background:blue; 
} 

です。

私はdjangoフレームワークを使用しています。

+1

;) – VisioN

+0

@VisioNあなたが読んでいる場合質問、それはポイントのほかにあります。 – sg3s

+0

@ sg3sですが、著者が意味するものがどのように「アクティブ」であるかをどのように知ることができますか?それには十分なHTMLがありません。 「現在選択されているメニューリンク」に「アクティブ」クラスが含まれている場合、答えは明白です。それ以外の場合は別の問題がある可能性があります。 – VisioN

答えて

0

クラス.activeにあなたのID #activeを交換してください - それは、より正しい方法です:

.menu_div ul li.active 
{ 
    background:blue; 
} 

とリスト内の能動素子にこのクラスを追加します。

<div class="menu_div"> 
    <ul> 
     <li class="active"><a href="/progress/c/?l=1&c=1"> l1c1 </a></li> 
     <li><a href="/progress/c/?l=2&c=1"> l1c1 </a></li> 
     <li><a href="/progress/c/?l=3&c=1"> l1c1 </a></li> 
     <li><a href="/progress/c/?l=4&c=1"> l1c1 </a></li> 
    </ul> 
</div> 
0
.menu_div ul li#active 

これは、アクティブを語りますリンクにはアクティブなIDが必要です。私はIDを見ない、なぜそれは青ではないのですか?

リンクをアクティブにするには、アイテムをアクティブにする必要があります。ブラウザはそれを実行しません。 「アクティブ」

あなたはidを持つクラスを持って、あなたのCSSで
2

が、これはおそらく、このようなクラスでなければなりません:

.menu_div ul li.active 
{ 
    background:blue; 
} 

さらに、私は「アクティブ」以上に一致するようにしようとお勧めしませんJavascriptクライアント側を使用して「現在の」ページを作成しました。

代わりに、サーバー上のスクリプトは、現在のページを認識し、それは次のようになりますので、関連するメニュー項目にクラスを追加する必要があります

<li class="active"><a href="/progress/c/?l=1&c=1"> l1c1 </a></li> 
+0

ありがとう。私はjavascriptを使ってその機能を追加しようと考えていました。しかし、あなたがそれをお勧めしないので、私はdjangoでそれを行う方法を見つけなければならない – John

+0

@John残念なことに私はdjangoにも慣れていませんが、単純な検索は役に立つかもしれないこのページに私を導いた:http:// gnuvince .wordpress.com/2007/09/14/a-django-template-tag-current-active-page/ – sg3s

+0

もう1つ問題があります。弾丸が私のulリストに表示されます。それを消滅させる方法はありますか? – John

4

は、このjQueryのコードを試してみて、それが自動的にクラスを追加します

$(function(){ 

    var url = window.location.href; 

    $("#menu a").each(function() { 

     if(url == (this.href)) { 
      $(this).closest("li").addClass("active"); 
     } 
    }); 

}); 
0

だけ

CSS

.menu_div ul li.active{background:blue} 

HTML

<div class="menu_div"> 
    <ul> 
     <li id="page1"><a href="/progress/c/?l=1&c=1"> l1c1 </a></li> 
     <li id="page2"><a href="/progress/c/?l=2&c=1"> l1c1 </a></li> 
     <li id="page3"><a href="/progress/c/?l=3&c=1"> l1c1 </a></li> 
     <li id="page4"><a href="/progress/c/?l=4&c=1"> l1c1 </a></li> 
    </ul> 
</div> 

スクリプト私はあなた `localhost` URLは、世界の残りの部分のためにアクセス可能ではないと信じて

#In every page just put this script and change the id 
<script>$("#page1").addClass('active');</script> 
関連する問題