如何让菜单按钮的下半部分显示?

时间:2014-09-21 04:28:39

标签: css menu navigation hover

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

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>

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你有这个声明:

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;",但我认为拥有高度比溢出更好。无论如何,这是一个你必须思考的决定