CSS底部边框悬停“抖动”

时间:2015-04-24 23:51:21

标签: html css colors hover border

我有一个导航栏,当你将鼠标悬停在导航按钮上时,我想给它一个橙色的底部边框。唯一的问题是,无论何时悬停,边框都会使内容/导航按钮“抖动”,这是他们不应该的。此外,我在导航栏上始终有一个黑色的底部边框,所以它不会改变它。

HTML:

<div id="navBarTop">
        <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="contact.html">Contact</a></li>
        </ul>
</div>

CSS:

#navBarTop {
    padding: 0;
    background-image: url('navBarBackground1.png');
    border-bottom: 1px solid #4c4c4c;
    position: absolute;
    bottom: 0;
    text-align: center;
    left: 0;
    right: 0;
}

#navBarTop ul {
    list-style: none;
    width: 800px;
    margin: 0 auto;
    padding: 0; 
    display: inline-block;
}

#navBarTop li {
    display: inline-block;
}

#navBarTop li a {
    display: block;
    padding: 10px 25px;
    text-decoration: none;
    font-family: "Arial";
    color: #ffffff;
}

#navBarTop li a:hover {
    border-bottom: 2px solid #FF8000;
}

1 个答案:

答案 0 :(得分:2)

抖动似乎是由于悬停时在底部添加额外的2px边框引起的。这导致文本上升了一点。要解决此问题,请将#navBarTop li a更改为此内容,确保始终为2px边框:

#navBarTop li a {
    display: block;
    padding: 10px 25px;
    text-decoration: none;
    font-family: "Arial";
    color: #00ffff;
    border-bottom: 2px solid transparent;  // <--- add this line
}

这应该可以为你稳定。