【问题标题】:Manage sub links in sidebar管理侧边栏中的子链接
【发布时间】:2016-11-30 11:04:35
【问题描述】:

我有一个左侧边栏,其中包括链接和子链接。它看起来如下 -

当我将鼠标悬停在侧边栏内的链接子链接上时(在图像中,我将鼠标悬停在帖子链接上,其子链接显示在侧边栏内)。
现在我的问题是或者我想要的是子链接应该显示在侧边栏之外(在侧边栏的右侧)。
这是我到目前为止所尝试的

.sidenav {
    height: 90%;
    width: 50%;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    /*background-color: #111;*/
    background:#23282D;
    overflow-x: hidden;
    transition: 0.5s;
    padding-top: 60px;
    margin-top:62px;
}

.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 18px;
    color: #818181;
    display: block;
    transition: 0.3s
}

.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

#main {
    transition: margin-left .5s;
    padding: 16px;
    margin-top:50px;
}

@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}  
<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" id='sidebar_close'>&times;</a>
  <ul style='list-style:none;'>
  <li class='myclass'><a href="#">Dashboard</a></li>
 <li class='post_list'> <a href="#">Posts</a>
    <ul style='list-style:none;' class='sub_links'>
        <li><a href='#'>All</a></li>
        <li><a href='#'>Add</a></li>
        <li><a href='#'>Category</a></li>
    </ul>
 </li>
  <li class='post_list'>
  <a href="#">Pages</a>
<ul style='list-style:none;' class='sub_links'>
        <li><a href='#'>All</a></li>
        <li><a href='#'>Add</a></li>
    </ul>
  </li>
  <li><a href="#" class='media_upload'>Media</a></li>
<li class='post_list'> <a href="#">User</a>
    <ul style='list-style:none;' class='sub_links'>
        <li><a href='#'>All</a></li>
        <li><a href='#'>Add</a></li>
        <li><a href='#'>Profile</a></li>
    </ul>
 </li>
  <li><a href="#">Setting</a></li>
  <li><a href="#">Logout</a></li>
  </ul>
</div> 

请帮我管理子链接。
谢谢。

【问题讨论】:

  • 您能否详细说明您的代码,以便它代表您正在显示的图像。就像现在 (jsfiddle.net/eystq4t3) 一样,什么都没有
  • 我已经上传了创建侧边栏的所有代码。

标签: html css sidebar


【解决方案1】:

您需要使用位置来实现这一点 将 li (.post_list) 设置为 position:relative; 并将子菜单(ul)设置为position:absolute; ,并且您必须从 sidenav

中删除 overflowx:hidden;

这是您应该添加的代码:

.post_list{

      position: relative;
}

.post_list ul{

    list-style: none;
    position: absolute;
    left: 100%;
    background: #23282D;
    top: 0;
    display: none;
}

.post_list:hover ul{

  display: block;
}

jsfiddle

你的代码会变成这样:

.sidenav {
    height: 90%;
    width: 50%;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    /*background-color: #111;*/
    background:#23282D;
    /*overflow-x: hidden;*/
    transition: 0.5s;
    padding-top: 60px;
    margin-top:62px;
}

.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 18px;
    color: #818181;
    display: block;
    transition: 0.3s
}

.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

#main {
    transition: margin-left .5s;
    padding: 16px;
    margin-top:50px;
}

.post_list{
  
      position: relative;
}

.post_list ul{
  
    list-style: none;
    position: absolute;
    left: 100%;
    background: #23282D;
    top: 0;
    display: none;
}

.post_list:hover ul{
  
  display: block;
}



@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}  
<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" id='sidebar_close'>&times;</a>
  <ul style='list-style:none;'>
  <li class='myclass'><a href="#">Dashboard</a></li>
 <li class='post_list'> <a href="#">Posts</a>
    <ul style='list-style:none;' class='sub_links'>
        <li><a href='#'>All</a></li>
        <li><a href='#'>Add</a></li>
        <li><a href='#'>Category</a></li>
    </ul>
 </li>
  <li class='post_list'>
  <a href="#">Pages</a>
<ul style='list-style:none;' class='sub_links'>
        <li><a href='#'>All</a></li>
        <li><a href='#'>Add</a></li>
    </ul>
  </li>
  <li><a href="#" class='media_upload'>Media</a></li>
<li class='post_list'> <a href="#">User</a>
    <ul style='list-style:none;' class='sub_links'>
        <li><a href='#'>All</a></li>
        <li><a href='#'>Add</a></li>
        <li><a href='#'>Profile</a></li>
    </ul>
 </li>
  <li><a href="#">Setting</a></li>
  <li><a href="#">Logout</a></li>
  </ul>
</div> 

【讨论】:

  • 感谢您的帮助。这正是我想要的。
  • 我很高兴它有帮助!
【解决方案2】:

您可以根据需要调整边距来尝试此操作。

检查这个..http://jsfiddle.net/2Smgv/10787/

.dropdown:hover .dropdown-menu {
    display: block;
    margin: 0 50%;  # adjust as per your need  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多