javascript - 鼠标悬停时,CSS Navbar 下拉菜单文本向左移动

标签 javascript html css navbar absolute

我在我的博客上做了一个下拉导航栏,每次我将鼠标悬停在文本上时,它都会以最烦人的方式向左摇晃。您可以在实际中看到它 HERE .

我试过使用“position: relative;”和“position:absolute;”但是这些要么搞砸了我的导航栏,要么什么都不做,这取决于我把它们放在哪里。这是我用来制作导航栏的 CSS:

.Header h1
{
    text-shadow:2px 2px #FFFFFF;
}

/*----- MBT Drop Down Menu ----*/
#mbtnavbar
{
/* background: #8dfcf4; */
    width:100%;
    color:#8dfcf4;
    margin:0;
    padding:0;
    position:relative;
    border-top:0 solid #960100;
    height:41px;
}

#mbtnav
{
    background:#8dfcf4;
    margin:0;
    padding:0;
}

#mbtnav ul
{
    float:left;
    list-style:none;
    margin:0;
    padding:0;
}

#mbtnav li
{
    list-style:none;
    margin:0;
    padding:0;
/* border-left:1px solid #333; 
    border-right:1px solid #333; */
    height:41px;
}

#mbtnav li a,#mbtnav li a:link,#mbtnav li a:visited
{
    color:#0000;
    display:block;
    font:17px Milonga;
    margin:0;
    position:relative;
    padding:9px 23px 10px 12px;
    text-decoration:none;
}

#mbtnav li a:hover,#mbtnav li a:active
{
    background:#03a29b;
    color:#FFF;
    display:block;
    text-decoration:none;
    margin:0;
    position:relative;
    padding:9px 12px 10px;
}

#mbtnav li
{
    float:left;
    position:relative;
    padding:0;
}

#mbtnav li ul
{
    z-index:9999;
    position:absolute;
    left:-999em;
    height:auto;
    width:152px;
    margin:0;
    padding:0;
}

#mbtnav li ul a
{
    width:152px;
}

#mbtnav li ul ul
{
    margin:-35px 0 0 161px;
}

#mbtnav li:hover ul ul,#mbtnav li:hover ul ul ul,#mbtnav li.sfhover ul ul,#mbtnav li.sfhover ul ul ul
{
    left:-999em;
}

#mbtnav li:hover ul,#mbtnav li li:hover ul,#mbtnav li li li:hover ul,#mbtnav li.sfhover ul,#mbtnav li li.sfhover ul,#mbtnav li li li.sfhover ul
{
    left:auto;
}

#mbtnav li:hover,#mbtnav li.sfhover
{
    position:static;
}

#mbtnav li li a,#mbtnav li li a:link,#mbtnav li li a:visited
{
    background:#8dfcf4;
/* width: 140px; */
    color:#0000;
    display:block;
    font:15px Milonga;
    margin:0;
    padding:9px 12px 10px;
    text-decoration:none;
    z-index:9999;
    border-bottom:none;
}

#mbtnav li li a:hover,#mbtnavli li a:active
{
    background:#03a29b;
    color:#FFF;
    display:block;
    margin:0;
    padding:9px 12px 10px;
    text-decoration:none;
}

.tabs-inner .widget #mbtnavbar li a
{
    border-left:none;
}

.tabs-outer .widget,.section
{
    margin:0;
}

.tabs-inner
{
    padding:0;
}

以上是对原代码的修改HERE .

如果能得到所有帮助,我将不胜感激。

最佳答案

如下更改行号 (616) 上的 :hover 代码:

#mbtnav li a:hover, #mbtnav li a:active { 
background: #03a29b; 
color: #FFF; 
display: block; 
text-decoration: none; 
margin: 0; 
position: relative; 
}

它向左移动是因为您将填充从 9px 23px 10px 12px 更改为 9px 12px 10px 12px

关于javascript - 鼠标悬停时,CSS Navbar 下拉菜单文本向左移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678193/

相关文章:

javascript font-resizer 在 IE8 或 IE7 中不起作用

css - 如何仅使用 CSS 创建 'greater than' 箭头?

javascript - CoreJS 填充或不填充

javascript - OnClick如何选择取消选择状态的背景颜色

javascript - react : Update nested state?

html - 我可以在 html5 中设置制表位吗?

javascript - 如何在嵌套的 .each()(s) 中正确使用 "this"? (JQuery)

html - 你如何处理 HTML 中的空白

HTML <time> 时间间隔

jquery - 谷歌地图地理编码 longlat