<div class = "product">
<div class = "image">
<div class = "mainimage"></div>
<div class = "secondimage"></div>
</div>
<div class = "productdescription"></div>
</div>
При наведении курсора мыши на класс productdescription
я хочу применить дисплей: блок к классу secondimage
. Как мне это сделать?
Невозможно сделать это в чистом CSS с имеющейся у вас структурой, как правило, CSS избегает любых селекторов, которые «перемещаются вверх» по дереву узлов DOM, чтобы избежать сложности. Однако, если вы поменяете порядок так:
<div class = "product">
<div class = "productdescription"></div>
<div class = "image">
<div class = "mainimage"></div>
<div class = "secondimage"></div>
</div>
</div>
Тогда вы сможете сделать следующее, используя Селектор смежных братьев и сестер
.productdescription:hover + .image .secondimage{
display:block;
}
.productdescription:hover + .image .secondimage{
display:block;
color:red;
}
<div class = "product">
<div class = "productdescription">Product Description</div>
<div class = "image">
<div class = "mainimage">Main Image</div>
<div class = "secondimage">Second Image</div>
</div>
</div>
В качестве альтернативы, если вам нужно сохранить структуру, потребуется немного JavaScript / jQuery.
$(".productdescription").hover(function(){
$(this).parent().find(".image .secondimage").toggleClass("hoverActive")
});
.secondimage.hoverActive{
display:block;
color:red;
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "product">
<div class = "image">
<div class = "mainimage">Main Image</div>
<div class = "secondimage">Second Image</div>
</div>
<div class = "productdescription">Product Description</div>
</div>
Думаю, для этого вам понадобится JavaScript и jQuery.
После ввода идентификатора в каждый div, с которым вы хотите взаимодействовать:
$('#productDescription').hover(function(){
$('#secondImage').css("display","block");
});
Не знаю, ищете ли вы это, но это работает.
Вы не можете сделать это без javascript, потому что элемент триггера .productdescription должен быть родительским элементом элемента .secondimage.