更改浏览器缩放时,CSS选项卡菜单看起来很丑陋

时间:2013-05-06 22:12:22

标签: html css tabs

请查看我的CSS标签菜单:http://jsfiddle.net/NoGo/3Spru/

它使用YAML 4 CSS框架形式yaml.de(编辑2019:不再积极开发)

标签是:主页|用户|图

我的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更好的方法?

1 个答案:

答案 0 :(得分:0)

使用subpixel positioning并将margin-bottomborder-width分别设置为-1.5px1.5px,我可以让它看起来更好看。它looks fine here at jsFiddle - 只需很少的努力 - 在100%200%附近的某个地方,你可以通过进一步沿着子像素渲染路径在其他缩放级别上看起来更好。

然后我突然意识到你并不需要在非活动标签上设置底部边框,只需将标签上的margin-bottom设置为0px然后设置{{1在margin-bottom.active类到:hover。这将在任何缩放级别上自动显示,因为您根本不必担心“排队”。这种方法Here's a jsFiddle

-2px