导航栏上的分隔线问题
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%;
}
分隔线实际上与 li
下一个 相关联,因此快速解决方案是将其隐藏:
.menu li:hover + li {
background-image: none;
}
不要乱用填充或边距,只需定义聚焦 <li>
右侧的 <li>
不应该有显示边框的背景。
添加这段 CSS 代码:
.menu > ul > li:hover + li {
background: none;
}
遇到一个有点烦人的问题,我束手无策,所以寻求帮助。
我做了一个导航用的 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%;
}
分隔线实际上与 li
下一个 相关联,因此快速解决方案是将其隐藏:
.menu li:hover + li {
background-image: none;
}
不要乱用填充或边距,只需定义聚焦 <li>
右侧的 <li>
不应该有显示边框的背景。
添加这段 CSS 代码:
.menu > ul > li:hover + li {
background: none;
}