我在通过CSS选择器从CSS调用html元素时遇到问题。奇怪的是,类选择器正在工作,但我无法从CSS中选择元素。所以我不得不给他们上课。
我想做的是;当鼠标悬停在我想要显示<ul>
时,当鼠标没有悬停<a>,
时,我希望<ul>
(菜单)消失。
Html:
<div id="cFilter">
<a href="#" class="menus">Sort by date</a>
<ul class="uls">
<li class="lis">From old to new</li>
<li class="lis">From new to old</li>
</ul>
</div>
的CSS:
.menus {
color:#2a2d4d;
float:left;
margin-left:13px;
margin-top:20px;
text-decoration:none;
text-align:center;
background-color:#ffd800;
width:200px;
height:40px;
position:relative;
z-index:9999;
}
.menus:hover > ul{
color:#4d78bd;
cursor:pointer;
display:block;
}
.uls {
display:none;
background-color:#808080;
width:150px;
height:60px;
margin-top:60px;
list-style-type:none;float:left;
position: absolute;
margin-left: 14px;
margin-bottom:-100px;
}
.lis:hover {
color:#eedede;
cursor:pointer;
}
这是我的小提琴:JSFiddle
希望有人可以帮助我..
答案 0 :(得分:0)
试试这个
.menus:hover ~.uls
{
color:#4d78bd;
cursor:pointer;
display:block;
}
如果您想使用元素选择器
.menus:hover ~ ul
{
color:#4d78bd;
cursor:pointer;
display:block;
}
>
是一个直接子选择器,所以它不会因为 ul 不是孩子而
答案 1 :(得分:0)
这是因为你使用了错误的选择器:
.menus:hover > ul {
>
是直接子选择器。而且您的ul
不是您a.menus
的孩子。它们是sibilings,所以你必须使用+
用于中级sibilings,或~
用于一般sibilings:
.menus:hover ~ ul {
答案 2 :(得分:0)
尝试这样的事情
.menus:hover + .uls
{
color:#4d78bd;
cursor:pointer;
display:block;
}
或强>
.menus:hover + ul
{
color:#4d78bd;
cursor:pointer;
display:block;
}
<强> DEMO 强>
答案 3 :(得分:0)
添加加号
.menus:hover > .uls
到
.menus:hover + .uls
答案 4 :(得分:0)