2016-08-15 3 views
2

enter image description hereCSSは、アクティブナビゲーションバーは、私は小さな学校のプロジェクトのために(StackExchange UXへのクレジット)上記画像のように私のウェブサイトのための私のナビゲーションバーを設計したい

矢印作ります。しかし、私はどのようにアクティブなリンクの矢印を作るか分からない。

マイヘッダー:これを達成するためにどのような方法があります

enter image description here

<header> 
    <img src="logo.png" height="125px" width="250px" style="margin-left: 15%;" /> 
    <div class="myNav"> 
     <nav> 
     <ul> 
     <li><a href="index.html">Home</a></li> 
     <li><a href="courses.html">Courses</a></li> 
     <li><a href="about.html">About</a></li> 
     <li><a href="login.html">Login</a></li> 
     </ul> 
     </nav> 
    </div>   
</header> 

それは、このような小さなものになりますか?

EDIT:私のボタンはそうのように展開されているようだ

enter image description here

矢印に追加した後...上記のように、私は55×の下パディングを追加しました

.myNav li a { 
    display: block; 
    text-align:center; 
    padding: 14px 16px 55px; 
    text-decoration: none; 
    font-family: arial; 
    color: navy; 
} 

.myNav li a.active { 
    background: transparent url('youarehere.png') no-repeat center bottom; 
} 

ボタンが大きくなりました。ボタンを広げずに矢印だけを下に移動するにはどうしたらいいですか?

+0

上記の画像のHTMLとCSSは、右クリックしてinspectを選択すると表示されます。 –

+1

イメージです。小さなサイズの三角形のイメージを作り、アクティブなバーのリンクに追加します。 –

+1

アクティブURLのux cssを見ると、transparent url( 'img/bg-nav-current.png?v = 79f8dcf50ed7')のno-repeat center bottomが表示されます。矢印は画像ですが、上のリンクから保存することで技術的に把握できます。 – Dandy

答えて

1

解決策は、StackExchange UXヘッダーをどの程度正確にミラーリングするかによって異なります。 StackExchange UXのに合わせて背景色を設定します

<style> 
.myNav { 
    background-color: #2363a0; 
} 
.myNav li { 
    list-style-type: none; 
} 
.myNav li a { 
    color: #ffffff; 
    text-decoration: none; 
} 
</style> 

、に沿って:あなたは同じロゴを維持したいと仮定し、「質問する」ボタンを持ってしたくない、あなたは以下のようなものを使用することができますあなたのリンクの色を変えて。 StackExchange UXのようにヘッダーの高さを短く調整したい場合は、ロゴの高さを調整する必要があります。

EDIT:@Dandyが指摘したように

、矢印のために、あなたが必要とする:あなたが直面している

.myNav li a.active { 
    background: transparent url('youarehere.png') no-repeat center bottom; 
} 

追加のパディング誤差は、純粋なCSSを修正するために、残念ながらできません。問題は、ビジュアルボタン.myNav li {}ではなく、リンク自体に埋め込みを追加することです。.myNav li a {}どちらのリンクが.myNav li a.activeでアクティブであるかを試していますが、画像を追加するには問題ありませんが、残念ながらCSSは親セレクタにアクセスできません。つまり、純粋なCSSで正しい要素を操作することはできません。

StackExchange UXがこの問題を解決する方法はjQueryです。あなたはjQueryのへのアクセス権を持っていると仮定すると、何をしたいと思うことはある:

1)あなたのサイトの構造に応じて、(GET付き)URLからそれをつかんで、現在表示されているリンクワークアウト

if (page.indexOf('courses') >=0) { 
    $(".myNav ul li:nth-child(1)").addClass("youarehere"); 
} 
else if (page.indexOf('about') >=0) { 
    $(".myNav ul li:nth-child(2)").addClass("youarehere"); 
} 
etc. 
:変数と一致して <li>テキストに基づいて計算ですか)

var page = page.substring(1); 

3:

var page = window.location.pathname; // JavaScript 
var page = $(location).attr('pathname'); // jQuery 

2)最初の文字を取り除きます

4)三角形が代わりに.youarehere{}に追加されるようにコードを変更します。

.youarehere { 
    padding: 14px 16px 55px; 
    background: transparent url('youarehere.png') no-repeat center bottom; 
} 

あなたはJavaScriptやjQueryのへのアクセスを持っていない場合は、残念ながらあなたは大きなクリック可能領域と一緒に暮らすことのいずれかが必要です、またはその三角形を削除します。もちろん、生のHTMLの対応するリンクにクラスを追加するだけでも可能ですが、サイト全体で同じヘッダーコードを使用したいと考えています。

希望すると便利です。

+0

こんにちは、私の質問は誤った説明のため誤解されていました、ごめんなさい!私はliの上にその矢印を作る方法を尋ねています:active – iamhx

+0

ありがとう、私は部分文字列部分に立ち往生しています。 は 'ファイル:///アプリケーション/ XAMPP/xamppfiles/htdocsに/ AceTraining/index.html' '場合(ページ== 'インデックス') ' {//ここにコードを実行する}私はそれが正しいでしょうか? – iamhx

+0

'if(page.indexOf( 'index')> = 0)'を使って '私のために働いた。あなたのコードを更新して、あなたを正しい答えとしてマークすることができますか?ありがとう! – iamhx

関連する問題