将鼠标悬停在一个对象上并使用CSS来影响另一个对象(非jQuery)

问题描述:

如何将鼠标悬停在一个对象上并影响其他内容?在我的代码中,当我将鼠标悬停在向下箭头上时,我试图获得下拉菜单。我试图用CSS来做,而不是jQuery或JS。将鼠标悬停在一个对象上并使用CSS来影响另一个对象(非jQuery)

SEE HERE

HTML

<span class="MyDropDown">Menu Name 
    <ul class="MyDropDownList"> 
     <li>item 1</li> 
     <li>item 2</li> 
     <li>item 3</li> 
    </ul> 
</span> 

JS

var x = document.getElementsByClassName('MyDropDown'); 
for (i = 0; i < x.length; i++) { 
    var s = x[i].innerHTML.split("<")[0]; 
    var l = '<' + x[i].innerHTML.split("<")[1]; 
    x[i].innerHTML = '<table>\n<tr>\n<td>' + s + '</td>\n<td><div></div></td>\n</tr>\n</table>\n' + l; 
} 

CSS

.MyDropDown { 
    display: inline-block; 
    background-color: #333; 
    color: #FFF; 
    border-radius: 5px; 
    white-space: nowrap; 
} 

.MyDropDown td:nth-child(1) { 
    padding:5px 15px; 
    border-right:1px solid #777777; 
} 
.MyDropDown td:nth-child(1):hover { 
    color:#CCC; 
} 

.MyDropDown div:first-child { 
    margin: 0px 5px; 
    border-left: 4px solid transparent; 
    border-right: 4px solid transparent;  
    border-top: 4px solid #FFF; 
} 
.MyDropDown ul { 
    display:none; 
} 
.MyDropDown td:nth-child(2):hover > div:first-child { 
    border-top-color:#CCC; 
} 
.MyDropDown td:nth-child(2):hover > td:first-child{ /*this one*/ 
    border-bottom:1px solid #777777; 
} 
.MyDropDown td:nth-child(2):hover > ul { /*this one*/ 
    display:block; 
    min-height:15px; 
} 
+0

可以影响元素下面的东西正在徘徊在做'#elt:#徘徊影响,elt'或相似的,但除此之外,没有。 – 2014-09-12 21:56:38

+1

'.MyDropDown:hover ul {display:block; }' – APAD1 2014-09-12 21:57:13

+0

如果您没有在寻找如何显示箭头独占空间时的菜单,则使用@ APAD1建议。否则你不得不改变你的标记 – 2014-09-12 22:01:26

只徘徊在右侧的箭头?

http://jsfiddle.net/coma/b8nt16eo/

div.menu > div.arrow:hover + ul { 
    display: block; 
}