2012-01-06 11 views
0

私はこのようになりますナビゲーションバーがあります。負のマージンとの重複やフロートは

Navigation bar

を、最近CSSでそれにPNG矢印を変更することを決定しました。 CSSの矢印が重なっている唯一の問題は、期待通りに機能しません。次のnavブロックは前の矢印と重なって隠れていますが、次のnavブロックと重なるはずの矢印です(画像を使用している場合)。 .navarrowから負のマージンを削除すると、上記の画像のようにnavblockの間隔が表示されます。

希望の効果(先行する.navarrowは後続の.navblockと重複します)を達成する方法はありますか? CSSの色は簡単に変更できるので、CSSの矢印が好ましい。このような

<div class="navbar"> 
    <div class="navblock home"><a href="/">Home</a></div> 
    <div class="navarrow"></div> 
    <div class="navblock category"><a href="/apparel/">Apparel</a></div> 
    <div class="navarrow"></div> 
    <div class="navblock group"><a href="/apparel/jeans/"></a>Jeans</div> 
    <div class="navarrow"></div> 
    <div class="navblock item">Bla-bla</div> 
    <div class="navarrow"></div> 
</div> 

.navbar { 
    width: 100%; 
    margin: 20px auto; 
    height: 40px; 
    line-height: 40px; 
    font-size: 16px; 
} 

.navblock { 
    float: left; 
    padding: 0 20px 0 40px; 
} 

/* triangle pointing to the right */ 
.navarrow { 
    width: 0; 
    height: 0; 
    border-left: 20px solid green; 
    border-top: 20px solid transparent; 
    border-bottom: 20px solid transparent; 
    float: left; 
    margin-right: -20px; /* overlap */ 
} 
+0

オーバーラップしたいですか?スクリーンショットや、必要な外観のものを見ると便利です。 (http://jsfiddle.net/NotInUse/PjhBg/) – Scott

+0

私はあなたが達成しようとしていることをどのように見ているのか分かりません。 – j08691

+0

おそらくもっと良いアプローチはナビゲーションに 'ul'を使い、矢印を作るためにCSSで':after'を使うことでしょう。 – danferth

答えて

1

気にいらない...私はそれあなたはおそらくこれを行うにはほとんどのマークアップを変更したいとしている

http://jsfiddle.net/amkrtchyan/eju9r/4/

+0

うわー!これは面白い方法ですが、オーバーラップはまだ期待通りに機能しません。これを確認するには、.navblockまたは.navarrowに負のマージンを戻します。 – Vitaly

1

EITHキャンバスしてみてください。

<ul class="navbar"> 
    <li><a href="#"><span>Home</span></a></li> 
    <li><a href="#"><span>Apparel</span></a></li> 
</ul> 

CSS:

.navbar { 
    height: 40px; 
    padding: 0; 
    list-style: none; } 
.navbar li { float: left; } 
.navbar li a { 
    background: url(left_image.gif) 0 0 no-repeat; 
    display: block; } 
.navbar li a span { 
    background: url(arrow.png) 100% 0 no-repeat; 
    height: 40px; 
    padding: 0 30px; 
    display: block; } 

プレビュー:http://jsfiddle.net/Wexcode/UdbnG/

あなたがどんな説明が必要なら、私に教えてください。

1

申し訳ありませんが、私は男の子を理解しました。それは次のようになりますように、0に.navarrow:相対と左:

ちょうど位置を追加

.navarrow { 
    width: 0; 
    height: 0; 
    border-left: 20px solid transparent; 
    border-top: 20px solid transparent; 
    border-bottom: 20px solid transparent; 
    float: left; 
    position: relative; 
    left: 0; 
    margin-right: -20px; 
} 

enter image description here

関連する問題