打开子菜单时,垂直菜单无法正常工作

时间:2013-07-13 13:53:03

标签: html css3 css

这是我的HTML布局:

<ul class="main-menu">
   <li class="sub">
      Sections  
      <ul>
         <li>Add Section</li>
         <li>Edit Sections</li>
      </ul>
    </li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>

和CSS

* {
    margin: 0px;
    padding: 0px;
    border-top-style: none;
    border-right-style: none;
    border-bottom-style: none;
    border-left-style: none;
    list-style-type: none;
}
.main-menu {
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 13px;
    color: #000;
    display: inline-block;
    margin-top: 15px;
    margin-bottom: 15px;
    margin-left: 15px;
}
.main-menu > li {
    height: 22px;
    width: 170px;
    background: rgb(178,225,255); /* Old browsers */
    background: -moz-linear-gradient(top, rgba(178,225,255,1) 0%, rgba(102,182,252,1) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(178,225,255,1)), color-stop(100%,rgba(102,182,252,1))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, rgba(178,225,255,1) 0%,rgba(102,182,252,1) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, rgba(178,225,255,1) 0%,rgba(102,182,252,1) 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, rgba(178,225,255,1) 0%,rgba(102,182,252,1) 100%); /* IE10+ */
    background: linear-gradient(to bottom, rgba(178,225,255,1) 0%,rgba(102,182,252,1) 100%); /* W3C */




filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b2e1ff', endColorstr='#66b6fc',GradientType=0 ); /* IE6-9 */
    margin-bottom: 7px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    -webkit-box-shadow: 0px 3px 5px rgba(70, 58, 70, 0.70);
    -moz-box-shadow: 0px 3px 5px rgba(70, 58, 70, 0.70);
    box-shadow: 0px 3px 5px rgba(70, 58, 70, 0.70);
    cursor: pointer;
    text-align: right;
    padding-top: 5px;
    padding-right: 10px;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 13px;
}
.main-menu li:hover {
    -webkit-box-shadow: 0px 3px 5px rgba(70, 58, 70, 0.30);
    -moz-box-shadow: 0px 3px 5px rgba(70, 58, 70, 0.30);
    box-shadow: 0px 3px 5px rgba(70, 58, 70, 0.30);
    color: #CC0000;
}
.main-menu li ul {
    display: none;   
}
.main-menu > li.sub:hover ul {
     display: block;   
}

我正在使用css-gradient li元素,因此当我将鼠标悬停在width上以显示子菜单时,它会固定heightli会有效但由于固定li而无法在主width下放置。

我想要一个解决方案,以便我可以使用gradient并显示子菜单

JsFiddle Demo

2 个答案:

答案 0 :(得分:1)

如果您只是希望悬停时列表项的高度变大,只需向height:auto;

添加.main-menu li:hover即可

Here is the updated Fiddle

您可能希望更改子列表项的渐变以使其显得更平滑

编辑Here is a version with individual gradients

答案 1 :(得分:1)

这是子菜单的弹出窗口。

http://jsfiddle.net/54Q2n/22/

我刚为子菜单和子菜单li添加了一些CSS。

<强> CSS

.main-menu > li.sub:hover ul {
    display: block; 
    position: relative;
    left: 180px;
    top: -22px;
}
.sub li {
    margin-left: 5px;
}

然后从主菜单li复制子菜单li的样式,方法是从您的选择器中删除>。所以.main-menu > li.main-menu li