【问题标题】:Menu Jumping on Hover悬停时跳转菜单
【发布时间】:2010-10-21 09:06:26
【问题描述】:

我有一个网络应用程序(ASP.NET 2.0 C#)。在我的 Masterpage 上,我有一个菜单控件,并且我使用 css 样式表来设置菜单不同部分的样式。出于某种原因,当我将鼠标悬停在菜单上时,它会跳动一点。我认为当我将鼠标悬停在边界上时,边界会变得更大。

整个菜单的样式如下:

.menu
{
    width:110%;
    height:25px;
    border: 1px solid gray;
    text-align:center;
}

这是我对 StaticHoverStyle 的风格:

.staticMenuHover
{
    background-color:#CCCCCC;
    border-style:solid;
    border-color:#888888;  
    text-decoration: underline;
    border-width:thin;
}

我不知道为什么会这样,有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: c# asp.net css menu border


    【解决方案1】:

    发生这种情况是因为您在文本下划线。尝试不使用文本装饰,我敢打赌它会解决您的问题。

    【讨论】:

      【解决方案2】:

      悬停类上的边框宽度设置为细,在我的测试中呈现为 2 像素边框。设置为 1px。

      border-width:1px;
      

      您还可以将第二类的边框规则折叠成一行,使其与您的第一类保持一致,如下所示:

      border:1px solid #888888;
      

      【讨论】:

        【解决方案3】:

        您始终可以在链接中添加下划线(不是文本装饰)并调整填充。工作示例:

        #menu ul li a {
            display: block;
            width: 95%;
            padding: 0px 2px 2px 4px;
            text-decoration: none;
            color: rgb(30%,30%,60%); background: transparent;
        }
        #menu ul li a:visited {
            color: rgb(50%,10%,100%); 
        }
        #menu ul li a:hover {
            color: #000;
            border-bottom: 2px solid #c63; 
            background: #fcf;
            padding-bottom: 0px; }
        

        这项工作的原因是将 2px 底部填充更改为 0 px 并在 same rule 中添加 2px 边框底部。颜色变化与手头的问题无关。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-20
          • 2014-11-08
          • 2015-01-20
          • 2011-07-08
          • 1970-01-01
          • 2021-12-07
          相关资源
          最近更新 更多