0

这是我的 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-gradientforli元素,因此它会固定width,并且height当我将鼠标悬停在li显示子菜单上时,它会起作用,但li由于已固定,它在 main 下没有适合的位置width

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

JsFiddle 演示

4

2 回答 2

1

这是您的子菜单的弹出窗口。

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

我刚刚为 sub-menu 和 sub-menu 添加了一些 CSS li

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

于 2013-07-13T15:21:49.590 回答
1

如果您只想让列表项的高度在悬停时变大,只需height:auto;.main-menu li:hover

这是更新的小提琴

您可能希望更改子列表项的渐变以使其看起来更平滑

编辑这是一个带有单独渐变的版本

于 2013-07-13T14:10:23.967 回答