Вы можете использовать класс :hover
в CSS только тогда, когда хотите изменить css элемента, к которому применяется правило: hover. В вашем коде вы нашли интересный обходной путь: использование .topLabelHover:hover
для манипулирования CSS нескольких элементов, когда любой из них был наведен.Это будет работать, за исключением того, что вам нужно учитывать тот факт, что это изменит css всех элементов с этим классом, а не только один зависший.Вы можете сделать это, убедившись, что CSS всплывающего окна является единственным, который изменяется, установив CSS запускающего элемента на одно и то же:
.topIcons {
position: absolute;
padding:14px 6px 10px 6px;
float:right;
}
.topIconsHover:hover {
background-color:#555555;
cursor:pointer
}
.topLabelHover {
display: none;
}
.topLabelHover:hover, .topIconsHover {
display: block;
background-color:#555555;
width:80px;
height:24px;
position:absolute; //makes the div appear 40px from the top of parent
top:40px;
}
Однако, ИМХО, это очень запутанно читать,Ваш код был бы намного понятнее, короче и проще, если бы вы просто использовали jQuery:
HTML:
<div class="topIcons topIconsHover">
<a href="image.html"><img src="icons/image.png" /></a>
<div class="topLabelHover">Image</div>
</div>
Javascript:
$(".topIconsHover").hover( function() {
$(".topLabelHover").addClass("hovered");
});
Css:
.topIcons {
position: absolute;
padding:14px 6px 10px 6px;
float:right;
}
.topIconsHover:hover {
background-color:#555555;
cursor:pointer
}
.topLabelHover {
display: none;
}
.hovered {
display: block;
background-color:#555555; //this,
width:80px; //this,
height:24px; //and this should be factored out into a separate class!
position: static; //revert to normal positioning.
}
Производительность версии CSS была бы бесконечно лучше, но поскольку версия Jquery по-прежнему занимает гораздо меньше 100 мс, чтобы показать всплывающее окно, она будет ощущаться столь же мгновенно.: D
РЕДАКТИРОВАТЬ: Если вы хотите, чтобы всплывающее окно появлялось под элементом div, просто поместите <div>
всплывающего окна сразу после запуска div вместо него и измените значение .hovered
css to this:
.hovered {
background-color:#555555;
width:80px;
height:24px;
}
Если вы хотите создать эффект, похожий на всплывающую подсказку, просто введите «jquery tooltip» в Google и выберите любое расширение, наиболее соответствующее вашим требованиям.: D