css - 将鼠标悬停在一个对象上并使用 CSS(不是 jquery)影响另一个对象

标签 css

如何将鼠标悬停在一个对象上并影响其他对象?在我的代码中,当我将鼠标悬停在向下箭头上时,我试图获得下拉列表。我正在尝试使用 CSS 而不是 jquery 或 JS。

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;
}

最佳答案

只悬停在向右的箭头上?

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

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

关于css - 将鼠标悬停在一个对象上并使用 CSS(不是 jquery)影响另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25817379/

相关文章:

javascript - 难道我做错了什么?尝试使用 modernizr 为 firefox 加载单独的样式表

css - 将 <p> 限制在一行并在必要时省略?

javascript - 使用 CSS 裁剪/调整图像大小以更改纵横比

css - 水平样式化​​ NgFor

css - 具有图像和线性渐变的多个背景的无效属性值

php - 简单的电子邮件联系表

html - 添加 li 的所有属性

html - 带有 Offcanvas 的 Bootstrap Bug

css - 提高 CSS3 背景位置动画的性能

jquery - 如何让父div跟随45度旋转的子div的高度