使用Flex Css修复导航栏对齐

时间:2017-12-21 20:01:25

标签: css navigation flexbox navbar

我正在尝试修改导航栏上的内容对齐方式。我首先让导航栏移动就绪。

.sidebar{
  position: fixed;
  top:0;
  left:-300px;
  width: 300px;
  height: 100vh;
  background: #262626;
  transition: 1s;
  padding 20px;
  text-align: center;
  box-sizing: border-box;
}
.sidebar.active{
  left: 0px;
}

.menu-options a{
  color: #fff;
  font-family: sans-serif;
  text-decoration:none;
  display: block;
  padding: 10px 0px;;
  margin: 6px 0px ;
  text-transform: uppercase;
  font-size: 18px;
  transition: .5s;

}

当屏幕宽度达到一定大小时,我尝试删除导航图标(汉堡按钮)和图像。然后我尝试使用弹性框并证明内容之间有空间。

@media screen and (min-width:800px){

  .sidebar{
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: 7%;
    justify-content: space-between
  }


  .menu-options{
    display: flex;

  }

  .menu-options a{

    padding: 10px 22px;
  }
  .social-icons{
    position: static;
    width: auto;

  }

  .social-icons i{
    padding: 10px 22px;
  }



  .nav-icon,
  .sidebar img{
    display: none;
  }

}

这是HTML

        <body>
<header>
     <!--      Nav icon-->


        <!--    Mobile social media sidebar-->
  <div class="sidebar">
    <div class="nav-icon">
      <div class="hamburger"></div>
    </div>
    <a href="#"><img src="images/wheel_img_web.png"></a>
    <nav class ="menu-options">
      <a href="#">About</a>
      <a href="#">Portfolio</a>
      <a href="#">Contact</a>
    </nav>
   <!-- social media icons     -->
    <nav class="social-icons">
      <i class="fa fa-linkedin" aria-hidden="true"></i>
      <span class="sr-only"></span>
      <i class="fa fa-github" aria-hidden="true"></i>
      <span class="sr-only"></span>
      <i class="fa fa-envelope" aria-hidden="true"></i>
      <span class="sr-only"></span>
    </nav>
   </div>
 </header>
     </body>

我的目标是在左侧显示菜单选项,在右侧显示社交媒体图标。由于某种原因,菜单选项似乎居中对齐。我相信这是因为它仍然将汉堡包和图像视为一个对象。我有这个假设,因为当我从DOM中删除nav-icon(汉堡包)和img横幅时,它就会按照我的意愿去做。我该怎么做才能解决这个问题?此外,我在此链接中包含了可能提供更好的预期https://drive.google.com/drive/folders/1yx_VPB-P19rOwf9W66c-jVlJbCaI_04R?usp=sharing的图片。感谢

1 个答案:

答案 0 :(得分:0)

您需要添加以下内容才能使其正常工作(只有一行)。这会强制弹性子项.menu-options占用上下文中最多的空间。

@media screen and (min-width:800px) {
  …
  .menu-options {
    …
    flex-grow: 1;
  }
}