CSS底部边框悬停“抖动”

Posted

技术标签:

【中文标题】CSS底部边框悬停“抖动”【英文标题】:CSS bottom border hover "jitter" 【发布时间】:2015-07-03 18:10:57 【问题描述】:

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

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】:

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

这应该为你稳定事情。

【讨论】:

以上是关于CSS底部边框悬停“抖动”的主要内容,如果未能解决你的问题,请参考以下文章

边框底部问题(悬停时向下扩展)

悬停时的线性渐变底部边框

悬停图像比例抖动错误

悬停时表格标题的边框底部

悬停效果:展开底部边框

HTML href 与 css 即问题