2017-02-11 7 views
0

ich einige HTML/CSS haben, die etwa wie folgt aussieht:hinzufügen Hover-Stil, um ein Kind in einer Geschwisterelement

#left a:hover img { 
 
    border: 5px solid red; 
 
}
<div id="information"> 
 
    <div id="left"> 
 
    <a href="URL"> 
 
     <img src="IMG"> 
 
     <span id="button">CLICK</span> 
 
    </a> 
 
    </div> 
 
    <div id="right"> 
 
    <a href="URL">CLICK</a> 
 
    </div> 
 
</div>

Ich will es machen, so dass, wenn Sie über entweder schweben link wird eine CSS-Regel auf das Bild links angewendet. Ich kann den Link auf der linken Seite bekommen, aber nicht auf der rechten Seite.

Ich möchte es so machen, dass alle, die über irgendwelche Links in "#information" schweben, diese Regel auf jedes Bild anwenden, das zu "#information #left a img" passt. Was ist der beste Weg, dies zu tun? Gibt es eine Möglichkeit, dies in einer Zeile zu tun?

+0

mit CSS nur oder auch durch js? – NoNameIamLame

Antwort

2

Wir konnten nicht herausfinden, wie dies mit ausschließlich CSS zu tun, deshalb unten für eine jquery Alternative.

(function(){ 
 
    $('#information').find('a').each(function(i, element){ 
 
    $(element).mouseover(function(){ 
 
     $('#left img').addClass("hoveredThing"); 
 
    }); 
 
    
 
    $(element).mouseleave(function(){ 
 
     $('#left img').removeClass("hoveredThing"); 
 
    }); 
 
    }); 
 
}());
.hoveredThing { border:5px solid red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="information"> 
 
    <div id="left"> 
 
     <a href="URL"> 
 
      <img src="img" > 
 
      <span id="button">CLICK</span> 
 
     </a> 
 
    </div> 
 
    <div id="right"> 
 
     <a href="URL"> 
 
      CLICK 
 
     </a>            
 
    </div> 
 
</div>

+0

Sie haben nicht den gleichen HTML verwendet - das Bild ist nur im ersten Teil ... (und meine Antwort funktioniert nicht eith - ich fürchte, es ist nicht möglich mit CSS allein) – Johannes

+0

Dieser Code funktioniert nicht –

+0

@ Johannes Ja, Entschuldigung. Ich habe deine Frage falsch gelesen. Sieht nicht so aus, als ob es ohne irgendeine Art von JS möglich wäre. Ich habe diese [stackoverflow] (http://stackoverflow.com/questions/4502633/how-to-affe-other-elements-when-a-div-is-hated) als Forschung verwendet. Könnte dich inspirieren. – matt

0

versuchen diese

#information div a:hover img{border:5px solid red;} 
2

Dies wegen der Struktur Ihrer html funktioniert nicht. Sie sagen, dass Sie den img innerhalb des hovered "a" -Tags auswählen sollen. Sie benötigen den IMG außerhalb des "a" und verwenden einen Geschwisterselektor.

Eine Geige https://jsfiddle.net/05jwnw7v/

#information a:hover~img{border: 1px solid red;} 

<div id="information"> 
    <div id="NewContainer"> 
     <a href="URL">CLICK</a> 
     <a href="URL">   
      <span id="button">CLICK</span> 
     </a> 
     <img src="IMG" > 
    </div> 
</div> 
Verwandte Themen