[英]Html, CSS : Sidebar sub menu not appearing
I have been following a tutorial online about creating a sidebar and i have run into an issue. 我一直在网上学习有关创建侧边栏的教程,但遇到了问题。 When i hover over one of the menus a sub menu appears.
当我将鼠标悬停在菜单之一上时,将出现一个子菜单。 But if i put anything to the right of the menu the sub menu does not appear only when you put the mouse over it.
但是,如果我在菜单的右侧放置了任何内容,则仅当将鼠标放在菜单上时,子菜单才会出现。 I want the menu to appear over the text to the right of the sidebar
我希望菜单显示在侧栏右侧的文本上方
The menu works perfectly when nothing is to the left (eg overflow:auto;) 当左边什么都没有时,菜单可以正常工作(例如:overflow:auto;)
Here is a jfiddle example of the issue 这是问题的一个小例子
HTML 的HTML
<nav id="sidebar-menu">
<ul class="parent-sidebar-menu">
<li><a href="#">Home & Kitchen</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li><a href="#">Electronics</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul></li>
<li><a href="#">Clothing</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul></li>
<li><a href="#">Cars & Motorbikes</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li><a href="#">Books</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
<li><a href="#">Support</a>
<ul>
<li><a href="#">Contact Us</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">Deliveries</a></li>
<li><a href="#">T&C</a></li>
</ul>
</li>
</ul>
</nav>
</div>
<div align="top">
<p>this is just a test</p>
</div>
CSS 的CSS
p, ul, li, div, nav
{
padding:0;
margin:0;
}
body
{
font-family:Calibri;
}
#sidebar-menu {
overflow: visible;
position:relative;
z-index:2;
}
.parent-sidebar-menu {
background-color: #0c8fff;
min-width:200px;
float:left;
}
#sidebar-menu ul
{
list-style-type:none;
}
#sidebar-menu ul li a
{
padding:10px 15px;
display:block;
color:#fff;
text-decoration:none;
}
#sidebar-menu ul li a:hover
{
background-color:#007ee9;
}
#sidebar-menu ul li:hover > ul {
left: 200px;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#sidebar-menu ul li > ul {
position: absolute;
background-color: #333;
top: 0;
left: -200px;
min-width: 200px;
z-index: -1;
height: 100%;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#sidebar-menu ul li > ul li a:hover
{
background-color:#2e2e2e;
}
Does anyone know how to fix this? 有谁知道如何解决这一问题?
Your sub-menu actually is showing up; 您的子菜单实际上正在显示; it's just the background color that doesn't show up.
只是背景颜色没有显示。 Right now, you have the background color applied the sub-menu's UL.
现在,您已经将背景色应用到了子菜单的UL中。 If you instead apply the background-color to the LIs within that UL, it fixes the issue (I think this might be because of the UL's very low z-index?).
如果您改为将背景色应用于该UL中的LI,则可以解决此问题(我认为这可能是因为UL的Z指数非常低?)。
Anyway, here's the CSS rule to add: 无论如何,这是要添加的CSS规则:
#sidebar-menu ul li > ul li {
background-color: #333;
}
You can then remove the background-color from #sidebar-menu ul li > ul
since it doesn't do anything. 然后,您可以从
#sidebar-menu ul li > ul
删除背景色,因为它没有任何作用。
The issue is that you have a z-index of -1 (so behind everything) on the CSS for your rollover. 问题是,在过渡时,CSS的z索引为-1(因此位于所有内容之后)。 Changing the Z-index of the #sidebar-menu ul li > ul to 100 and the z-index of the #sidebar-menu to 200 fixes it.
将#sidebar-menu ul li> ul的Z-index更改为100,将#sidebar-menu的z-index更改为200。 This should be your CSS:
这应该是您的CSS:
p, ul, li, div, nav
{
padding:0;
margin:0;
}
body
{
font-family:Calibri;
}
#sidebar-menu {
overflow: visible;
position:relative;
z-index:200;
}
.parent-sidebar-menu {
background-color: #0c8fff;
min-width:200px;
float:left;
}
#sidebar-menu ul
{
list-style-type:none;
}
#sidebar-menu ul li a
{
padding:10px 15px;
display:block;
color:#fff;
text-decoration:none;
z-index:100;
}
#sidebar-menu ul li a:hover
{
background-color:#007ee9;
}
#sidebar-menu ul li:hover > ul {
left: 200px;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#sidebar-menu ul li > ul {
position: absolute;
background-color: #333;
top: 0;
left: -200px;
min-width: 200px;
z-index: 1;
height: 100%;
-webkit-transition: left 200ms ease-in;
-moz-transition: left 200ms ease-in;
-ms-transition: left 200ms ease-in;
transition: left 200ms ease-in;
}
#sidebar-menu ul li > ul li a:hover
{
background-color:#2e2e2e;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.