【发布时间】:2017-04-17 19:04:10
【问题描述】:
我一直想弄清楚这一点,但我真的迷路了。我正在制作一个具有三个级别的侧边栏:一个主菜单,当您将鼠标悬停在菜单项上时还有两个子菜单(因此它是主菜单项>子菜单项>另一个子菜单)。问题是,我不太擅长 CSS 动画,但我正在努力学习。并且想知道是否可以这样做?
到目前为止,这是我的代码。最初,我从 JS 开始,但 stackoverflow 告诉我使用 CSS 动画会更容易。老实说,这看起来更干净。无论如何,目前,当您将鼠标悬停在侧边栏上时,它会在其旁边显示图标标题。但是,当您分别将鼠标悬停在每个菜单项上时,我应该如何让子菜单出现?我应该通过在悬停时出现一个全新的 div 来做到这一点,还是应该通过扩展现有的 div 来做到这一点(这似乎不是一个好主意)?
正确的方法是什么?我应该在哪些元素上添加 CSS 过渡以实现平滑的侧边栏滑动?
/* .subnav {
position: fixed;
background-color: red;
margin-top: 0;
top: 75px;
left: 75px;
height: 100vw;
}
my poor attempt at submenu */
.sidebar {
margin-top: 75px;
position: fixed;
width:75px;
height:100vw;
top:0;
left:0;
z-index:100;
background-color: #292a2c;
color: #000;
overflow: hidden;
transition: width .5s;
}
.sidebar:hover {
width: 160px;
}
.sidebar ul {
width:200px;
}
.sidebar a i {
font-size: 30px;
}
.sidebar a {
color:#fff;
font-size:14px;
text-decoration:none;
}
.nav-item {
padding-left: 8px;
}
.nav-item:hover {
background-color: $primary-color;
}
span {
display: none;
font-size: 14px;
}
.sidebar:hover span {
display: initial;
}
<div class="sidebar">
<ul class="nav flex-column m-0">
<li class="nav-item py-2">
<a class="nav-link" href="#">
<i class="fa fa-envelope-open" aria-hidden="true"></i>
<span class="pl-1">
Item
</span>
</a>
<ul class="nav subnav flex-column">
<li class="nav-item">
<a class="nav-link active" href="#">
Overview
<span class="sr-only">
(current)
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Reports</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Analytics</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Export</a>
</li>
</ul>
</li>
</ul>
</div>
谢谢!
【问题讨论】:
标签: html css bootstrap-4