【问题标题】:page content below horizontal menu moving水平菜单下方的页面内容移动
【发布时间】:2013-09-17 16:24:00
【问题描述】:

我的水平菜单有这个 css:

当您将鼠标悬停在链接上并出现子菜单时,它会显示子菜单,但下面的页面内容会略微向下移动。

有什么想法吗?

在这里摆弄:http://jsfiddle.net/XwDTt/1/

nav {
    margin: 0 auto; 
    text-align: center;
}

nav ul ul {
    display: none;
}

nav ul li:hover > ul {
    display: block;
}

nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: inline-block;
    vertical-align: top;
}

nav ul li {
    float: left;
    margin: 0;
    padding: 0;
}

nav ul li:hover a {
    color: #000000;
    margin-bottom:5px;
    border-top: 1px solid #000000;
    border-bottom: 1px solid #000000;
}

nav ul li a {
    display: block; 
    padding: 5px 15px;
    color: #000000;
    text-decoration: none;
    background-color: #eeeeee;
}       

nav ul ul {
    border-radius: 0px;
    padding: 0;
    position: absolute;
}

nav ul ul li {
    float: none; 
    position: relative;
}

nav ul ul li a {
    color: #000000;
}

nav ul ul li a:hover {
    color: #666666;
}

nav ul ul ul {
    position: absolute;
    top:0;
}

【问题讨论】:

    标签: html css


    【解决方案1】:

    改变这个:

    nav ul li:hover a {
        color: #000000;
        margin-bottom:5px;
        border-top: 1px solid #000000;
        border-bottom: 1px solid #000000;
     }
    

    进入这个:

    nav ul li:hover a {
        color: #000000;
        margin-bottom:5px;
        border-top: 1px solid #000000;
        border-bottom: 1px solid #000000;
        position:relative;
        top:-1px;
    }
    

    【讨论】:

      【解决方案2】:

      我觉得这个是最简单的

      nav {
          margin: 0 auto; 
          text-align: center;
          height:30px;    /* add height to your nav tag */
      }
      

      【讨论】:

        【解决方案3】:

        这里有两点:

        1. 向元素添加border 时,通常会增加元素的高度。您可以默认使用transparent 边框。
        2. 您可以在子菜单列表项上使用属性,而不是在锚标记上设置margin 属性,这些属性位于absolute 并且不会影响文档的正常流程。

        使用以下内容:

        nav ul li:hover a {
            color: #000000;
            border-top: 1px solid #000000;
            border-bottom: 1px solid #000000;
        }
        
        nav ul li:hover li {
            margin-top: 5px; /* <-- add margin to sub-menu items */
        }
        
        nav ul li a {
            display: block; 
            padding: 5px 15px;
            color: #000000;
            text-decoration: none;
            background-color: #eeeeee;
        
            border-top: 1px solid transparent;    /* <-- Set a transparent border */
            border-bottom: 1px solid transparent; /* <-- Set a transparent border */    
        }
        

        JSFiddle Demo

        【讨论】:

          【解决方案4】:

          您在悬停时添加边框。默认情况下,您应该有透明边框... 还有边距。

          nav ul li a {
             display: block; 
             margin-bottom:5px;
             padding: 5px 15px;
             color: #000000;
             text-decoration: none;    
             background-color: #eeeeee;
             border-top: 1px solid #eeeeee;
             border-bottom: 1px solid #eeeeee;
          }       
          

          http://jsfiddle.net/XwDTt/3/

          【讨论】:

          • 我已经删除了悬停时的边框 - jsfiddle.net/XwDTt/2 - 仍然是同样的问题
          • 基本上你在改变a框的高度
          【解决方案5】:

          或者你可以只设置 li 元素的高度:

          nav ul li {
              float: left;
              margin: 0;
              padding: 0;
              height:30px;
          }
          

          【讨论】:

            【解决方案6】:

            解决方案 1:

            nav ul li:hover a {
                color: #000000;
                /*margin-bottom:5px comment these
                border-top: 1px solid #000000;
                border-bottom: 1px solid #000000;*/
            }
            

            解决方案 2:

            nav ul li:hover a {
                color: #000000;
                /*margin-bottom:5px comment this line only */
                border-top: 1px solid #000000;
                border-bottom: 1px solid #000000;;
            }
            

            并添加这一行:

            nav ul li a {
                    margin-bottom:5px;
                    border-top:1px solid #fff;
                    border-bottom:1px solid #fff;
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-02-04
              • 2014-09-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多