CSS 底部边框悬停 "jitter"

CSS bottom border hover "jitter"

我有一个导航栏,当您将鼠标悬停在导航按钮上时,我想给它一个橙色的底部边框。唯一的问题是,无论何时悬停,边框都会使 content/navigation 按钮成为 "jitter",这是它们不应该的。此外,我已经在导航栏上一直有一个黑色底部边框,因此无法更改它。

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;
}

抖动似乎是由于悬停时在底部添加了额外的 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
}

那应该可以让你稳定下来。