徽标以未知菜单项为中心

时间:2015-10-27 07:25:43

标签: html css menu center

我想将未知数量的菜单项和徽标放在项目和徽标周围的中心位置应位于屏幕中间。

这种情况下最好的技巧是什么?

nav {

  text-align:center;

}

ul{
  display:inline-block;
  margin:0;
  padding:0;
  list-style-type:none;
}


li{
  display:inline;

}

li+li{
  margin-left:15px;

}
<nav>
<div id="logo"></div>
   <ul>
      <li><a href="#">Menu1</a></li>
      <li><a href="#">Menu2</a></li>
      <li><a href="#">Menu3</a></li>
      <li><a href="#">Menu4</a></li>
      <li><a href="#">Menu5</a></li>
      <li><a href="#">Menu6</a></li>
     <li><a href="#">Menu7</a></li>
  
  </ul>
</nav>

2 个答案:

答案 0 :(得分:1)

假设您想要徽标并且li's位于同一行......那就没有简单的解决方案了。我认为你需要一些jquery,但无论你找到什么解决方案,你都需要偶数li's

有了这个jquery:

var middle = Math.ceil($("ul li").length / 2);
$("ul li:nth-child(" + middle + ")").after('<li class="logo"></li>');

您只需在li的中间添加一个额外的ul,之后您可以使用css添加图片样式:

.logo {
    width:100px;
    height:20px;
    background-image:url(your image);
    background-repeat:no-repeat;
        display:inline-block;
}

,如 JSFIDDLE

答案 1 :(得分:0)

在ul li中使用徽标,或者您可以左右两个菜单更好。否则你必须做更多。

nav {

  text-align:center;

}

ul{
  display:inline-block;
  margin:0;
  padding:0;
  list-style-type:none;
}


li{
  display:inline;
  position: relative;
  top: 50px;

}

li+li{
  margin-left:15px;

}

#logo {
  display: inline-block;
  width: 100px;
  height: 100px;
  top: 13px;
  background: #565656;
  border-radius: 100%;
  border: 1px solid #fff;
  color: #fff;
}

#logo a {
  color: #fff;
  position: relative;
  top:35px;
}
<nav>
   <ul>
      <li><a href="#">Menu1</a></li>
      <li><a href="#">Menu2</a></li>
      <li><a href="#">Menu3</a></li>
      <li><a href="#">Menu4</a></li>
      <li class="logo" id="logo"><a href="#">Logo</a></li>
      <li><a href="#">Menu5</a></li>
      <li><a href="#">Menu6</a></li>
      <li><a href="#">Menu7</a></li>
      <li><a href="#">Menu8</a></li>
  </ul>
</nav>