2017-11-23 2 views
0

übersetze Ich habe Probleme, Übergang auf zwei Klassen gleichzeitig zu übergehen, wenn ich über einen von ihnen schwebe.Wie man zwei Klassen gleichzeitig mit CSS

.sv-logo { 
 
    opacity: 0.5; 
 
    transition: all .3s; 
 
} 
 

 
.nav{ 
 
    opacity: 0.5; 
 
    transition: all .3s 
 
} 
 

 
.sv-logo:hover, .sv-logo:hover + .nav{ 
 
    opacity: 1; 
 
    transition: all .3s; 
 
} 
 

 
.nav:hover, .nav:hover + .sv-logo{ 
 
    opacity: 1; 
 
    transition: all .3s; 
 
}
<div class="grid"> 
 
     <div class="sv-logo"> 
 
      <img id="logo1" src="images/logo.png" alt="logo">    
 
     </div> 
 
     <div class="nav"> 
 
      <nav> 
 
        <ul> 
 
         <li><a href="index.html">Portfolio</a></li> 
 
         <li><a href="index.html">About</a></li> 
 
         <li><a href="index.html">Contact</a></li> 
 
        </ul> 
 
      </nav> 
 
     </div> 
 
</div>

Die obige CSS funktioniert, wenn ich oben auf .sv-Logo schweben, verblassen beide Klassen in. Allerdings, wenn ich über .nav schweben, nur .nav Blendungen in.

+0

Zurück Geschwister Selektor Problem, vielleicht finden Sie hier etwas nützlich: https://StackOverflow.com/Questions/1817792/is-there-a-previous-sibling-Css-Selector – sinisake

+0

Mögliche Duplikat von [Gibt es eine " vorheriges Geschwister "CSS Selektor?" (https://stackoverflow.com/questions/1817792/is-there-a-previous-sibling-css-selector) –

Antwort

1

Ihr Problem liegt in der Tatsache, dass das adjacent sibling selector nur das folgende Element auswählt. Es kann das vorherige Element nicht auswählen.

Betrachten wir in einem anderen Behälter einkapseln, vielleicht header

header { 
 
    opacity: 0.5; 
 
    transition: all .3s; 
 
} 
 

 

 

 
header:hover{ 
 
    opacity: 1; 
 
    transition: all .3s; 
 
}
<div class="grid"> 
 
    <header> 
 
    <div class="sv-logo"> 
 
     <img id="logo1" src="images/logo.png" alt="logo"> 
 
    </div> 
 
    <div class="nav"> 
 
     <nav> 
 
     <ul> 
 
      <li><a href="index.html">Portfolio</a></li> 
 
      <li><a href="index.html">About</a></li> 
 
      <li><a href="index.html">Contact</a></li> 
 
     </ul> 
 
     </nav> 
 
    </div> 
 
    </header> 
 
</div>

Sie auch Javascript verwenden könnte, die die DOM besser durchqueren können.

+0

Danke für den Vorschlag, aber es schien das Raster zu verschieben. Ich beschloss, das Design des Naves am Ende zu ändern. – mexicanChica

Verwandte Themen