2012-10-01 4 views
9

Ich habe eine ul mit Baum Liste Elemente in einer horizontalen Ansicht. Alle Listenelemente haben die gleiche Hintergrundbild:Überlappende Li-Elemente mit Hintergrund und Z-Index

Background image is the same for all li

Ich möchte die Hintergrundbilder zu überlappen, so dass es wie folgt aussieht:

This is what I try to accomplish

Hier ist mein jsFiddle

CSS:

div#menu ul li{ 
    height:30px; 
    display: inline; 
    list-style-type: none; 
    width: 60px; 
    background: url(http://i.stack.imgur.com/adwVj.jpg); 
    background-size: 100%; 
    background-repeat: no-repeat; 
    padding-right: 5px; 
    padding-left:30px; 
    z-index:2;   
} 

div#menu ul li:first-child{ 
    padding-left:20px; 
    z-index:3;    
} 
div#menu ul li:last-child{ 
    padding-left:35px;  
    margin-left:-30px 
    z-index:1;  
} 

HTML:

<div id="menu"> 
     <ul> 
      <li>Account</li> 
      <li>Registreren</li> 
      <li>Winkelwagen</li> 
     </ul> 
</div> 

Es geht mit dem z-index falsch!

+1

Es ist immer eine gute Idee, einige Code hinzufügen Auch in der Frage. Nicht nur in der Geige. – jurgemaister

+0

danke für den Tipp, ich habe die CSS und HTML zu meiner Frage hinzugefügt –

+0

Manchmal sind wir nicht in der Lage, Geige zu öffnen. besser halten Code in Frage und bieten Geige Link –

Antwort

13

sollten Sie zunächst mindestens position: relative zu Ihren Listenartikeln geben, sonst hat z-index keine Wirkung. dann benutzen Sie einfach

div#menu ul li + li { 
    left : -20px; 
} 

so werden die Etiketten dicht beieinander bleiben (wird aus dem zweiten <li> Element diese Regel angewendet werden, beginnend)

Beispiel Geige: http://jsfiddle.net/Faffz/3/

+0

ahaaa schön 1 Kumpel .. –

+0

Danke das funktioniert! Ich muss 3 Minuten warten, bevor ich diesen Awnser annehmen kann –

+0

froh, um hilfreich zu sein :) – fcalderan