请看我的CSS标签菜单:http://jsfiddle.net/NoGo/3Spru/
它使用YAML 4 CSS框架形式YAML .de(编辑2019:不再积极开发)
标签是:Home | Users | Map
我的HTML:
<nav>
<div class="ym-wrapper">
<div class="ym-wbox">
<ul>
<li>
<a href="#">
<div>Home <i class="icon-home"></i></div>
<span>Go to Main Page</span>
</a>
</li>
<li class="active">
<a href="#" class="">
<div>Users <i class="icon-search"></i></div>
<span>Search User Accounts</span>
</a>
</li>
<li>
<a href="#">
<div>Map <i class="icon-globe"></i></div>
<span>Users near you</span>
</a>
</li>
</ul>
</div>
<div class="ym-clearfix"></div>
</div>
</nav>
CSS: header nav {
clear: both;
width:100%;
position:relative;
white-space: nowrap;
padding-top:10px;
border-bottom: 2px solid #CA278C;
}
header nav ul {
list-style: none;
padding:0;
margin:0;
display:inline;
}
header nav ul li {
display: inline-block;
border-top: 2px solid transparent;
margin: 0 5px -2px 0;
background-color: #f0f0f0;
border-bottom: 2px solid #CA278C;
line-height: 180%;
}
header nav ul li.active,
header nav ul li:hover {
border-top: 2px solid #CA278C;
border-bottom: 2px solid #fff;
background-color: #fff;
}
header nav ul li.active {
border-right: 2px solid #CA278C;
border-left: 2px solid #CA278C;
}
header nav ul li a {
display: inline-block;
padding: 5px 16px;
}
header nav ul li a div {
text-transform: uppercase;
font-weight: bold;
font-size: 16px;
}
header nav ul li a span {
font-size: 11px;
color: #999
}
header nav [class^="icon-"],
header nav [class*=" icon-"] {
vertical-align: baseline;
line-height: inherit;
opacity: 0.7;
}
我的问题:当我改变浏览器缩放,底线看起来很丑。有比margin-bottom: -2px
在li
元素上工作更好的方法吗?
我可以让它看起来更好通过使用亚像素定位和设置margin-bottom
和border-width
分别为-1.5px
和1.5px
。它在jsFiddle上看起来很好-以最小的努力-在100%
到接近200%
的某个地方,并且您可能可以通过进一步沿着亚像素渲染路径使它在其他缩放级别上看起来更好。
但后来我明白了,你并不需要在非活动选项卡上有那个底部边框,只需要将选项卡上的margin-bottom
设置为0px
,然后将.active
和:hover
类中的margin-bottom
设置为-2px
。这将自动在任何缩放级别上看起来都很好,因为你不必担心"排队"。这里有一个jsFiddle。
header nav ul li {
display: inline-block;
margin: 0 5px 0 0;
border-top: 2px solid transparent;
background-color: #f0f0f0;
line-height: 180%;
position: relative;
}
header nav ul li.active,
header nav ul li:hover {
border-top: 2px solid #CA278C;
border-bottom: 2px solid #FFF;
background-color: #fff;
margin-bottom: -2px;
}