【问题标题】:How to I get the bottom half of my menu buttons to show?如何让我的菜单按钮的下半部分显示?
【发布时间】:2014-09-21 04:28:38
【问题描述】:

我似乎无法显示按钮的底部,我尝试增加 span 的填充,将其设置为 display: block,并增加 A 和 SPAN 元素的高度无济于事。

JS 小提琴链接:http://jsfiddle.net/7tcrz38r/

CSS:

/* Menu */
div#menu{
    float: right;
    margin-top: [[setting:menuMarginTop]];
}

div#menu ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
div#menu>ul>li{
    float: left;
    padding: 0;
}
div#menu li.has-sub>ul{
    background: #FFFFFF;
    border-top: 4px solid [[setting:color1]] !important;
    box-sizing: border-box;
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box;
    height: 110px;
    display: none;
    height: auto;
    margin: -12px 0 0 16px;
    padding: 0px;
    position: absolute;
    width: 170px;
    z-index: 2000;
}
div#menu li.has-sub>ul>li{
    border-bottom: 1px solid #EEEEEE;
    border-left: 1px solid #DDDDDD;
    border-right: 1px solid #DDDDDD;
    padding: 10px;
}
div#menu li.has-sub>ul>li>a{
    color: #949494;
    font-size: 12px !important;
    text-decoration: none;
}
div#menu li.has-sub>ul>li>a:hover{
    color: [[setting:color1]];
}

div#menu li:hover ul {
    display: block;
}

div#menu>ul>li>a {
    color: #868787;
    display: inline-block;
    font-size: 18px !important;
    font-weight: lighter;
    letter-spacing: 1px !important;
    margin: 17px 15px !important;
    outline: none;
    position: relative;
    text-decoration: none;
    text-shadow: 0 0 1px rgba(255,255,255,0.3);
}
/*div#menu>ul>li>a.active{
    color: [[setting:color1]] !important;
    background-color: #c3d9e3;
    border: 2px solid #abd1eb;
    border-radius: 5px;
}*/
div#menu>ul>li:last-child>a{
    margin: 17px 0 17px 15px !important
}
div#menu>ul>li:last-child>a{
    margin-right: 0 !important;
}
div#menu>ul>li>a:hover,
div#menu>ul>li>a:focus {
    outline: none;
}

div#menu>ul>li>a{
    overflow: hidden;
    padding: 0 !important;
    height: 1.3em !important;
}

div#menu>ul>li>a>span {
    display: block;
    position: relative;
    border: 2px solid #eef3f5;
    /*-webkit-transition: -webkit-transform 0.3s;
    -moz-transition: -moz-transform 0.3s;
    transition: transform 0.3s;*/
}

div#menu>ul>li>a>span::before {
    position: absolute;
    top: 100%;
    content: attr(data-hover);
    /*-webkit-transform: translate3d(0,0,0);
    -moz-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);*/
}

div#menu>ul>li>a:hover span,
div#menu>ul>li>a:focus span {
/*    background-color: #c3d9e3;
    border: 1px solid #abd1eb;
    border-radius: 25%;*/
    background-color: #c3d9e3;
    border: 2px solid #abd1eb;
    border-radius: 5px;
    /*-webkit-transform: translateY(-100%);
    -moz-transform: translateY(-100%);
    transform: translateY(-100%);
    color: [[setting:color1]];*/
}
/*
div#menu>ul>li>a.menuactive{
    color: [[setting:color1]];
}*/

HTML:

<div id="menu">
                        <ul><li >
                                <a href="#"><span data-hover="Home">Home</span></a></li><li >
                                <a href="#"><span data-hover="Classes">Classes</span></a></li><li >
                                <a href="#"><span data-hover="Pricing">Pricing</span></a></li><li >
                                <a href="#"><span data-hover="About Us">About Us</span></a></li><li >
                                <a href="#"><span data-hover="Log In">Log In</span></a></li>   </ul>   
                     </div>

【问题讨论】:

  • “我的菜单下半部分要显示”你是什么意思?
  • 我也想知道。我看到 Firefox 的完整按钮。

标签: css menu navigation hover


【解决方案1】:

您正在为导致此问题的 A 设置固定高度(1.3em !important;)。

Please check this updated working fiddle:http://jsfiddle.net/7tcrz38r/2/

【讨论】:

    【解决方案2】:

    你有这个声明:

    div#menu>ul>li>a {
        overflow: hidden;
        padding: 0 !important;
        height: 1.3em !important;
    }
    

    顺便说一句,由于在上面声明了几行,所以它被重复了

    div#menu>ul>li>a {
        color: #868787;
        display: inline-block;
        font-size: 18px !important;
        font-weight: lighter;
        letter-spacing: 1px !important;
        margin: 17px 15px !important;
        outline: none;
        position: relative;
        text-decoration: none;
        text-shadow: 0 0 1px rgba(255, 255, 255, 0.3);
    }
    

    无论如何,只需删除 overflow:hidden 属性即可。但是,由于您拥有的数据悬停span,您的菜单项将显示两次。我不知道你为什么要使用它,所以考虑一下你是否需要它。当然,您也可以简单地删除"height: 1.3em !important;",但我认为拥有高度比溢出更好。无论如何,这是一个你必须考虑的决定

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多