2012-11-05 9 views
112

schwebt Ich mag :after mit :hover in CSS kombinieren (oder einem anderen Pseudo-Selektor). Ich habe im Grunde eine Liste und das Element mit der selected Klasse hat eine Pfeilform, die mit :after angewendet wird. Ich möchte, dass das Gleiche für Objekte gilt, über die man schwebt, aber das kann nicht funktionieren. Heres der CodeKombinieren: nach mit:

#alertlist 
{ 
    list-style:none; 
    width: 250px; 
} 
#alertlist li 
{ 
    padding: 5px 10px; 
    border-bottom: 1px solid #e9e9e9; 
    position:relative; 
} 
#alertlist li.selected, #alertlist li:hover 
{ 
    color: #f0f0f0; 
    background-color: #303030; 
} 

#alertlist li.selected:after 
{ 
    position:absolute; 
    top: 0; 
    right:-10px; 
    bottom:0; 

    border-top: 10px solid transparent; 
    border-bottom: 10px solid transparent; 
    border-left: 10px solid #303030; 
    content: ""; 
} 

<ul id="alertlist"> 
    <li>Alert 123</li> 
    <li class="selected">Alert 123</li> 
    <li>Alert 123</li> 
</ul> 
+0

Haben Sie versucht, die Regel #alertlist li hinzuzufügen: Hover: nach? – Andrea

Antwort

149

Nur :after zu Ihrem #alertlist li:hover Selektor anhängen auf die gleiche Weise mit Ihrem #alertlist li.selected Wähler tun:

#alertlist li.selected:after, #alertlist li:hover:after 
{ 
    position:absolute; 
    top: 0; 
    right:-10px; 
    bottom:0; 

    border-top: 10px solid transparent; 
    border-bottom: 10px solid transparent; 
    border-left: 10px solid #303030; 
    content: ""; 
} 
+1

Ich schwöre, ich hatte das schon probiert und es hat nicht funktioniert ?! Ich muss verrückt werden. Wie auch immer, deine Lösung funktioniert, danke! – Chris

+18

@Chris, was du wahrscheinlich vorher versucht hast, war ': after: hover' im Gegensatz zu': hover: after'. Das ist, was ich tat zunächst die frustrierende nicht – WickyNilliams

+3

@WickyNilliams funktioniert: Das ist durch Design (Pseudo-Elemente gegen Pseudoklassen) - siehe http://stackoverflow.com/questions/5777210/how-to-write-hover- Bedingung-for-abefore-and-ANach/5777334 # 5777334 – BoltClock

4
#alertlist li:hover:after,#alertlist li.selected:after 
{ 
    position:absolute; 
    top: 0; 
    right:-10px; 
    bottom:0; 

    border-top: 10px solid transparent; 
    border-bottom: 10px solid transparent; 
    border-left: 10px solid #303030; 
    content: ""; 
}​ 

jsFiddle Link

+0

Das funktioniert, ich jsFiddle –

+0

li getestet: schweben : Fügen Sie dies in der ausgewählten Klasse hinzu –

9

in SCSS

&::after{ 
content: url(images/RelativeProjectsArr.png); 
margin-left:30px; 
} 

&:hover{ 
    background-color:$turkiz; 
    color:#e5e7ef; 

    &::after{ 
    content: url(images/RelativeProjectsArrHover.png); 
    } 
}