如何使用(顶部)边距与CSS3下拉菜单?

时间:2011-11-30 07:49:49

标签: html css css3 margin drop-down-menu

我正在尝试在CSS3中完全创建一个下拉菜单。在大多数情况下,我已经完成了我想要的,但出于某种原因,我似乎无法在下拉菜单中添加margin-top: 10px;,因为我不希望它触及主链接。它似乎在悬停到边缘时停用了悬停?

我在jsFiddle上发布了一个没有边距的工作示例:http://jsfiddle.net/J5QSv/

这是margin-top: 10px;,不起作用:http://jsfiddle.net/RastaLulz/J5QSv/2/

正如您所看到的,这完全正常。但是,当您取消注释margin-top: 10px;时,它将不再有效。

你知道解决这个问题的方法吗?或解决方法?

HTML

<span class="LinksMenu">
    <ul>
        <li>
            <a href="#">Account</a>
            <ul>
                <li><a href="#">Settings</a></li>
                <li><a href="#">Logout</a></li>
            </ul>
        </li>
    </ul>
</span>

CSS

body {
    padding: 10px;
    background: #F3F3F3;
}

a:link,a:visited { color:#000; text-decoration:none }
a:hover,a:active { color:#000; text-decoration:underline }

.LinksMenu {
    margin:0;
    padding:0;
    clear: both;
}

.LinksMenu ul {
    margin:0;
    padding:0;
}

.LinksMenu li {
    margin:0;
    padding:0;
    list-style:none;
    float: left;
    position: relative;
}

.LinksMenu ul ul li a {
    margin: 0;
    padding: 10px;
    width: 100px;
    display: block;
    text-shadow: 0;
    color: #000;
}

.LinksMenu ul ul {
    /* margin-top: 3px; */
    border: 1px solid #CCC;
    border-radius: 3px;
    background: #FFF;
    position: absolute;
    visibility: hidden;
}

.LinksMenu ul li:hover ul {
    visibility: visible;
}

1 个答案:

答案 0 :(得分:3)

一个修复方法是在悬停时为悬停元素添加高度,因此该元素位于显示的元素下方。您需要将一个类添加到顶级<li>

.LinksMenu ul li.myClass:hover{
    height: 80px;
}

Check the fiddle