我正在使用纯CSS菜单,当我从li元素移出时,我不知道如何使子菜单保持可见。
高度必须是页面的100%,子菜单与主菜单相同,并且显示在右侧。
欢迎任何建议!
以下是演示(http://jsfiddle.net/91t43ruo/1/)
<div class="wrapper">
<div class="main-menu">
<ul>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Sed id cursus</a></li>
<li><a href="#">Co-Investor</a></li>
<li class="has-sub-menu"><a href="#">Donec interdum</a>
<div class="sub-menu">
<ul>
<li><a href="#">Ut quis bibendum</a></li>
<li><a href="#">Praesent vestibulum</a></li>
<li><a href="#">Sed ultrices</a></li>
</ul>
</div>
</li>
<li><a href="#">Morbi a mi blandit</a></li>
<li><a href="#">Pellentesque</a></li>
</ul>
</div>
</div>
body, html{
height:100%;
margin:0;
font-family:Arial;
}
a {
cursor: pointer;
text-decoration: none;
}
/*Wrapper*/
.wrapper {
width: 100%;
height: 100%;
background-color: #CCC;
}
/* Menu */
.main-menu, .sub-menu {
background-color: #2F759B;
width: 200px;
height: calc(100% - 40px);
padding: 20px;
}
.main-menu ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.main-menu li {
color: white;
background-color: #3585B0;
line-height: 26px;
margin-bottom: 5px;
}
.main-menu li:hover, .main-menu li.has-sub-menu{
background-color: #43A8DD;
cursor: pointer;
}
.main-menu a {
color: inherit;
margin-left: 6px;
}
/*Sub Menu*/
.sub-menu {
display:none;
position: absolute;
top: 0;
left: 240px;
}
.sub-menu ul {
}
/*Hover*/
.main-menu li:hover > div.sub-menu{
display:block;
}
答案 0 :(得分:1)
它离li
太远,所以悬停和子菜单之间存在差距。而不是left: 240px
上的.sub-menu
将其更改为left: 220px;
.sub-menu {
display: none;
position: absolute;
top: 0;
left: 220px;
}
<强>更新强>
好的我的建议是将子菜单包装在另一个div
中,这样它仍然可以触摸,但是有你想要的间距:
答案 1 :(得分:0)
.sub-menu {
display:none;
position: absolute;
top: 0;
left: 220px; /*Change 240px to 220px;*/
padding-left: 40px; /**Add this**/
}