2012-12-01 9 views
6

Ich platziere eine "Hover" -Funktion auf Klasse .one (.one :hover), um die background-color in grau zu ändern. Ich erwarte, dass es sowohl div s (.two, .three) hervorhebt, wenn ich über den Container schweben .one div.Hover über Container div hebt verschachtelte divs einzeln hervor

Allerdings, was es tut, ist schweben über die beiden verschachtelten div s (.two, .three) einzeln. Kann mir bitte jemand erklären, warum das so ist und was ich tun muss, damit es die gesamte div .one hervorhebt, die ein einziges solides graues div erzeugt?

Unten ist das CSS, das ich verwendet habe.

.one { 
 
    width: 200px; 
 
    display: inline-block; 
 
} 
 

 
.two { 
 
    background-color: rgba(0, 51, 102, 1); 
 
    width: 50px; 
 
    height: 100px; 
 
    float: left; 
 
} 
 

 
.three { 
 
    background-color: rgba(0, 204, 204, 1); 
 
    width: 150px; 
 
    height: 100px; 
 
    float: right; 
 
} 
 

 
.one :hover { 
 
    background-color: rgba(153, 153, 153, 1); 
 
}
<div class="one"> 
 
    <div class="two"> 
 
    </div> 
 
    <div class="three"> 
 
    </div> 
 
</div>

Antwort

8

Ich denke, das CSS wird Ihnen helfen:

.one:hover .two, .one:hover .three { 
background-color: rgba(153,153,153,1);} 
+0

Dank, dass auf jeden Fall der richtige Weg ist, es zu codieren. Ich habe eine Frage bezüglich der genauen Syntax der CSS-Regel. Wenn Sie einen einzelnen ".one: hover" -Wähler verwenden, muss ein Leerzeichen zwischen .one und: hover stehen. Wenn Sie jedoch die CSS-Regel mit mehreren Selektoren schreiben, darf zwischen .one und: hover kein Leerzeichen stehen. Gibt es dafür einen besonderen Grund? Es rettet mir immer später Kopfschmerzen, um zu verstehen, warum bestimmte Nuancen existieren, anstatt sich daran zu erinnern, dass sie da sind. – Biglu315

+0

Es klingt seltsam, dass Sie ein Leerzeichen zwischen dem Selektor und der Pseudoklasse hinzufügen müssen. Ich tue es nie. Wenn Sie sich z.B. http://www.w3schools.com/css/css_pseudo_classes.asp Es sieht nicht so aus, als sollte es ein Leerzeichen dazwischen sein. – anders

Verwandte Themen