现代侧边栏菜单
作为 CSS 爱好者,我总是尝试使用 CSS 复制我看到的设计。
今天想做一个侧边栏菜单。
 我一如既往地用了 Codepen(愿上帝保佑 Codepen)。
首先,我在页面上添加了我需要的必要 HTML:
<aside>
  <p> Menu </p>
  <a href="javascript:void(0)">
    <i class="fa fa-user-o" aria-hidden="true"></i>
    My drive
  </a>
  <a href="javascript:void(0)">
    <i class="fa fa-laptop" aria-hidden="true"></i>
    Computers
  </a>
  <a href="javascript:void(0)">
    <i class="fa fa-clone" aria-hidden="true"></i>
    Shared with me
  </a>
  <a href="javascript:void(0)">
    <i class="fa fa-star-o" aria-hidden="true"></i>
    Starred
  </a>
  <a href="javascript:void(0)">
    <i class="fa fa-trash-o" aria-hidden="true"></i>
    Trash
  </a>
</aside>
现在我希望我的侧边栏为 100vh 并且没有边距:
body {
  font-family: 'Roboto';
  width: 100%;
  height: 100vh;
  margin: 0;
}
为了获得侧边栏的美观视觉效果:
aside {
  color: #fff;
  width: 250px;
  padding-left: 20px;
  height: 100vh;
  background-image: linear-gradient(30deg , #0048bd, #44a7fd);
  border-top-right-radius: 80px;
}
aside a {
  font-size: 12px;
  color: #fff;
  display: block;
  padding: 12px;
  padding-left: 30px;
  text-decoration: none;
}
aside a:hover {
  color: #3f5efb;
  background: #fff;
  position: relative;
  background-color: #fff;
  border-top-left-radius: 20px;
  border-bottom-left-radius: 20px;
}
aside a i {
  margin-right: 5px;
}
最难实现的效果是将鼠标悬停在菜单项上:
对于左上角和左下角的悬停设计,我添加了 2 个伪元素,如下所示:
aside a:hover::after {
  content: "";
  position: absolute;
  background-color: transparent;
  bottom: 100%;
  right: 0;
  height: 35px;
  width: 35px;
  border-bottom-right-radius: 18px;
  box-shadow: 0 20px 0 0 #fff;
}
aside a:hover::before {
  content: "";
  position: absolute;
  background-color: transparent;
  top: 38px;
  right: 0;
  height: 35px;
  width: 35px;
  border-top-right-radius: 18px;
  box-shadow: 0 -20px 0 0 #fff;
}
有一些硬编码值,但如果有效,它就有效!:))
感谢您阅读这篇文章,我很好奇您是否有其他方法来实现悬停效果。
文章来源:https://dev.to/florincornea/modern-sidebar-menu-53o1 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com