【发布时间】:2014-01-29 17:21:38
【问题描述】:
我试图找到解决我的问题的方法,并且许多其他问题都类似,但我似乎无法解决这个问题。 CSS 从来都不是我的强项,所以我试图更好地掌握流畅的布局。
我有一个带有 3 个链接的导航栏。我希望每个链接占用均匀分布的空间,当用户将鼠标悬停在链接上时,我希望整个 li 元素突出显示。我遇到的问题是导航栏最右侧的最后一个小部分在悬停时总是留下一个空间。它让我疯狂。此外,如果您减小浏览器大小,最终最左侧的链接将弹出。我也想尝试避免这种情况,但我似乎无法让它发挥作用。 jsfiddlehere
有什么建议吗?
HTML:
<nav>
<ul>
<li>
<a href="managers.html">
Building Managers and Owners
</a>
</li>
<li>
<a href="contractors.html">
Contractors
</a>
</li>
<li>
<a href="architects.html">
Architects
</a>
</li>
</ul>
</nav>
CSS:
nav {
background: #303030;
font-size: 1em;
font-weight: 100;
height: 40px;
line-height: 40px;
margin: 0 auto 2em auto;
padding: 0;
width: 100%;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
nav ul{
width: 100%;
maring: 0;
padding: 0;
overflow: hidden;
list-style: none;
}
nav li {
width: 33.1%;
float: left;
text-align: center;
border-left: 1px inset;
border-right: 1px inset;
padding:0;
}
nav a:link, nav a:visited
{
color: #FFF;
text-decoration: none;
}
nav li:hover {
background: #556e8c;
}
nav li:first-child {
border-right: 1px inset;
border-left: none;
}
nav li:last-child {
border-right: none;
border-left: 1px inset;
}
nav li:first-child:hover {
border-top-left-radius: 5px;
-moz-border-radius-topleft: 5px;
-webkit-border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
-moz-border-radius-bottomleft: 5px;
-webkit-border-bottom-left-radius: 5px;
}
nav li:last-child:hover {
border-top-right-radius: 5px;
-moz-border-radius-topright: 5px;
-webkit-border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
-moz-border-radius-bottomright: 5px;
-webkit-border-bottom-right-radius: 5px;
}
【问题讨论】:
-
我注意到您已针对
CSS代码中的基本HTML元素。您应该尝试在代码中使用class和id作为标识符,这样辅助ul或其他li元素就不会受到当前css 格式的影响。
标签: css hover nav fluid-layout