导航栏上的分隔线问题

Divider issue on Navigation Bar

遇到一个有点烦人的问题,我束手无策,所以寻求帮助。

我做了一个导航用的 CodePen - http://codepen.io/nickelse/pen/yNwPwv

当您将鼠标悬停在其中一个导航 links 上时,它会覆盖左侧分隔线但显示右侧分隔线,任何人都对我如何让 link 悬停覆盖两个分隔线有任何建议还是坐在两者中间?

干杯,

尼克

<div class="navigation cf">
  <div class="menu cf">
    <ul>
      <li><a href="#">Poker Chips</a></li>
      <li>
        <a href="#">Poker Chip Sets<i class="fa fa-caret-down"></i></a>
        <ul class="sub-menu">
          <li><a href="#">Sub Link 1</a></li>
          <li><a href="#">Sub Link 2</a></li>
          <li><a href="#">Sub Link 3</a></li>
          <li><a href="#">Sub Link 4</a></li>
        </ul>
      </li>
      <li><a href="#">Poker Tables</a></li>
      <li><a href="#">Poker Chip Cases</a></li>
      <li><a href="#">Poker Playing Cards</a></li>
      <li><a href="#">Poker Accessories</a></li>
    </ul>
  </div>
</div>


body {
  background: #272727;
}

/*----- Menu Outline -----*/
.navigation {
  width: 100%;
  background: #454545;
  border-bottom: 3px solid #666;
}

.menu {
  width: 1000px;
  margin: 0px auto;
  text-align: center;
  font-size: 0;
}

.menu li {
  margin: 0px;
}

.menu a {
  transition: all linear 0.15s;
  color: #fff;
}

.menu li:hover > a {
  text-decoration: none;
  color: #ddd;
}

.menu .arrow {
  font-size: 11px;
  line-height: 0%;
}

/*----- Top Level -----*/
.menu > ul {
  margin: 0;
  padding: 0;
}

.menu > ul > li {
  display: inline-block;
  position: relative;
  font-size: 14px;
  background: url(http://i.imgur.com/ijNENpN.png) no-repeat left 50%;
}

.menu > ul > li:first-child {
  background: none;
}

.menu > ul > li > a {
  padding: 20px 24px;
  display: block;
}

.menu > ul > li:hover > a{
  background: #666;
}

/*----- Bottom Level -----*/
.menu li:hover .sub-menu {
  z-index: 1;
  opacity: 1;
}

.sub-menu {
  width: 280px;
  padding: 0;
  position: absolute;
  top: 100%;
  left: 0px;
  z-index: -1;
  opacity: 0;
  transition: opacity linear 0.2s;
  background: #666;
  text-align: left;
}

.sub-menu li {
  display: block;
  font-size: 14px;
}

.sub-menu li a {
  padding: 10px 24px;
  display: block;
  color: #fff;
}

.sub-menu li a:hover {
  background: #353535;
}

.navigation .fa.fa-caret-down   {
    margin-left: 6px;   
}


.cf:before,
.cf:after {
  content: " "; /* 1 */
  display: table; /* 2 */
}

.cf:after {
  clear: both;
}

/** For IE 6/7 only - Include this rule to trigger hasLayout and contain floats. */
.cf {
  *zoom: 1;
}

li 标签添加 padding:3px;

.menu > ul > li {
  padding:3px; //added this
  display: inline-block;
  position: relative;
  font-size: 14px;
  background: url(http://i.imgur.com/ijNENpN.png) no-repeat left 50%;
}

Demo here

分隔线实际上与 li 下一个 相关联,因此快速解决方案是将其隐藏:

.menu li:hover + li {
  background-image: none;
}

Codepen Demo

不要乱用填充或边距,只需定义聚焦 <li> 右侧的 <li> 不应该有显示边框的背景。

添加这段 CSS 代码:

.menu > ul > li:hover + li {
  background: none;
}

http://codepen.io/anon/pen/MwxrGx