我知道我会因为提出这样的问题而嗤之以鼻,但我是选择者的新手,并且正在努力为现有UL中嵌入UL的儿童设置悬停效果。
HTML:
<ul id="ctxMenuStock">
<li><a href="#ctxCMDCopy">Copy</a></li>
<li><a href="#ctxCMDReserve">Reserve/Outgoing</a></li>
<li><a href="#">Set Status <span style="font-family: Webdings">6</span></a>
<ul id="ctxMenuStockStatuses" runat="server"></ul>
</li>
</ul>
ctxMenuStockStatuses由页面加载时的服务器代码填充。
CSS:
#ctxMenuStock, #ctxMenuStock ul, #ctxMenuPending, #ctxMenuPending ul{
display:none;
margin:0;
padding:0;
list-style-type:none;
list-style-position:outside;
position:fixed;
line-height:1.5em;
}
#ctxMenuStock a:link, #ctxMenuStock hr, #ctxMenuStock a:active, #ctxMenuStock a:visited, #ctxMenuPending a:link, #ctxMenuPending hr, #ctxMenuPending a:active, #ctxMenuPending a:visited{
display:block;
padding:0px 5px;
color:#fff;
text-decoration:none;
background-color:#333;
}
#ctxMenuStock>li:hover ul, #ctxMenuStock>li:hover ul li, #ctxMenuStock>li:hover ul li a
{
color:#fff;
background-color:#333;
}
#ctxMenuStock>li:hover a, #ctxMenuPending>li:hover a{
background-color:#fff;
color:#333;
}
#ctxMenuStock ul li ul li a:hover, #ctxMenuPending ul li ul li a:hover{
background-color:#fff;
color:#333;
}
#ctxMenuStockStatuses li
{
color:#fff;
background-color:#333;
}
#ctxMenuStockStatuses li:hover
{
background-color:#fff;
color:#333;
}
#ctxMenuStock li, #ctxMenuPending li{
float:none;
position:relative;
}
#ctxMenuStock ul, #ctxMenuPending ul {
position:absolute;
display:none;
float:left;
}
#ctxMenuStock li ul a, #ctxMenuPending li ul a
{
width:12em;
margin: 0 0 0 4px;
float:left;
}
#ctxMenuStock ul ul, #ctxMenuPending ul ul{
top:auto;
}
#ctxMenuStock li ul ul, #ctxMenuPending li ul ul {
left:12em;
margin:0px 0 0 10px;
}
#ctxMenuStock li:hover ul ul, #ctxMenuStock li:hover ul ul ul, #ctxMenuStock li:hover ul ul ul ul{
display:none;
}
#ctxMenuStock li:hover ul, #ctxMenuStock li li:hover ul, #ctxMenuStock li li li:hover ul, #ctxMenuStock li li li li:hover ul{
display:block;
}
#ctxMenuPending li:hover ul ul, #ctxMenuPending li:hover ul ul ul, #ctxMenuPending li:hover ul ul ul ul{
display:none;
}
#ctxMenuPending li:hover ul, #ctxMenuPending li li:hover ul, #ctxMenuPending li li li:hover ul, #ctxMenuPending li li li li:hover ul{
display:block;
}
菜单基本上是一个带有白色文字的深色背景,但在悬停时会反转。这适用于父菜单,但子菜单不会更改,并且在黑色时保持白色。
我知道这些CSS中的一些相互矛盾,但它变得难以理解。我似乎无法在网上找到很多(如果有的话)在线工作示例如何使用子菜单。
有人可以告诉我最好的方法。
修改 根据要求,JSFiddle示例创建:http://jsfiddle.net/KzhEP/ 虽然在我的主项目中,oncontextmenu属性附加到我的表服务器端的每一行。我已经嘲笑了一个简单的例子,但由于某种原因,我无法在jsfiddle上获得正确的点击功能。
答案 0 :(得分:2)
很难说出你想要在这里实现的目标,但你可以尝试下面的内容〜
删除以下css,因为它覆盖了白色css更改的嵌套黑色:
#ctxMenuStock>li:hover ul, #ctxMenuStock>li:hover ul li,
#ctxMenuStock>li:hover ul li a{
color:#fff;
background-color:#333;
}
然后从以下位置更改提供悬停效果的CSS选择器:
#ctxMenuStock>li:hover a, #ctxMenuPending>li:hover a{
background-color:#fff;
color:#333;
}
要:
#ctxMenuStock li:hover > a, #ctxMenuPending li:hover > a{
background-color:#fff;
color:#333;
}
这样您就可以定位li
中的所有#ctxMenuStock
元素和#ctxMenuPending
无深度的内容 - 但您只能操纵悬停的li
元素的子锚标记。
答案 1 :(得分:0)
你的CSS错了。根据事物的外观,您正在为同一事物键入不同的设置。再次检查你的CSS,你会发现你的错误