围绕中心徽标图像进行居中导航

Centering Navigation around a centre logo image

我有一个导航栏,如下所示:http://i.imgur.com/4rxkS2K.jpg

我是用foundation做网站,我做的导航条是这样的:

HTML:

<nav class="top-bar">
    <ul>

          <li><a href="about.html">About</a></li>
          <li id="menu-divider">|</li>
          <li><a href="testimonials.html">Testimonials</a></li>
          <li><a href="index.html"><img src="images/logo.png" alt=""></a></li>
          <li><a href="services.html">Services</a></li>
          <li id="menu-divider">|</li>
          <li><a href="contact.html">Contact</a></li>
    </ul>


</nav>

CSS:

.top-bar { font-family: 'bebas_neueregular'; 
           height: 150px;
           line-height: 100px;
           padding: 18px;
           width: 100%;
           position: relative;
           text-align:center;
           margin-bottom:10px; }

.top-bar ul { display:inline-block;
              margin-left: auto ;
              margin-right: auto ;}

.top-bar ul > li { display:inline-block;
                   margin-left: auto ;
                   margin-right: auto ;}

 #menu-divider { color:#ffffff;
                font-size: 24px;}

正如您在图片中看到的那样,我构建它的方式意味着我的中心 li 元素(我的徽标图片)并不完全位于中心,因为其他 li 元素具有不同的宽度,这意味着它们都集中在一起.我所追求的是死点处的徽标,然后是其他 li 元素,因为它们以徽标为中心。

在此先感谢您的帮助!

您可以尝试一下,但我很确定这可以解决问题: http://codepen.io/anon/pen/dYXQpz

使用 3 个容器(这意味着您失去了作为 ul 的导航)。弯曲它们并在左侧和右侧内部弯曲元素(第一个结束,另一个开始)

<div class="nav-bar">

  <div class="sideNav leftNav">
    <div class="menu">
      MENU 1
    </div>
    <div class="split"></div>
    <div class="menu">
      MENU 2
    </div>
  </div>
  <div class="logo">
    <img src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSN9qhGx6NftAepiMOjdGXkcW-UxkO9dtQ4VGRlepyzNC2S8xQCcA" />
  </div>
  <div class="sideNav rightNav">
    <div class="menu">
      MENU 3
    </div>
    <div class="split"></div>
    <div class="menu">
      MENU 4
    </div>
  </div>


</div>

然后应用css。它可以改进,但可以帮助您入门。

.nav-bar {
  background: pink;
  display: flex;
}

.sideNav {
  flex: 1 0 auto;
  background: red;
  display: flex;
}

.leftNav {
  justify-content: flex-end;
}

.rightNav {
  justify-content: flex-start;
}

.sideNav > div {
  margin: 100px 20px 0 20px;
}
.split{width: 2px;background: white;height: 16px}

希望对您有所帮助。我喜欢 flexbox。