0

我已经使用基于 CSS 的下拉菜单创建了一个下拉菜单,但是当您将鼠标悬停在父列表项上时,无序列表显示锚定在父项的左侧。我希望它成为他们的核心,但我不知道如何。

http://jsfiddle.net/jspring/LtVaq/

html:

<ul class="ulRight">
<li><a href="#">Settings</a>
    <ul>
        <li><a href="#">This Is</a></li>
        <li><a href="#">Sub Menu</a></li>
        <li><a href="#">One</a></li>
    </ul>
</li>
<li><a href="#">Your Account</a>
    <ul>
        <li><a href="#">Sub Menu</a></li>
        <li><a href="#">Two</a></li>
        <li><a href="#">Now!</a></li>
    </ul>
</li>

.ulRight {
    /*To float UL List to right*/
    list-style:none outside none !important;
    position:absolute;
    right:10px;
    top:0px;
    display:inline-table;
    z-index:1000;
}
.ulRight ul:after {
    content:"";
    clear:both;
    display:block;
}
.ulRight > li {
    display:inline;
    color:#BBBBBB;
    width:auto;
}
.ulRight li > ul {
    vertical-align:middle;
    z-index:1001;
    display:none;
    position:relative;
    margin:auto;
    top:40px;
    width:inherit;
}
.ulRight li:hover > ul {
    display:block;
}
.ulRight > li {
    margin:0 5px 0 5px;
}
.ulRight > li {
    float:left;
}
.ulRight > li:hover {
    background:#FFF;
    border:1px solid #CCCCCC;
}
.ulRight a {
    text-decoration:none;
    font-weight:normal;
    display:block;
    padding:10px;
}
.ulRight li:hover a {
    font-weight:bold;
    color:#80B5E9;
    text-align:center;
}
.ulRight li > ul {
    background:#FFF;
    border-radius:0px;
    padding:0px;
    position:absolute;
    box-shadow:0px 0px 9px rgba(0, 0, 0, 0.15);
    border:1px solid #CCCCCC;
}
.ulRight li > ul > li {
    list-style:none;
    float:none;
    border-top:1px solid #CCCCCC;
    border-bottom:1px solid #CCCCCC;
    position:relative;
}
.ulRight li > ul a {
}
.ulRight li > ul a:hover {
    color:#FFF;
    background:#303030;
}

任何帮助将非常感激!

4

2 回答 2

0

更改为相对位置

.ulRight li > ul{
position:relative;
top:0;
}
于 2013-06-24T23:03:45.990 回答
0

我看到的主要问题是您的父列表的宽度不一致。

.ulRight li >ul{
position:realative; // this position makes the child position realative to your parent list which is left justified....
}

最快和最简单的是应用修复宽度。这样你的父子列表的宽度都是一样的。

.ulRight > li {
display:inline;
color:#BBBBBB;
width:auto;  // Change this to 110px or what ever you see fit
}

如果您不喜欢此解决方案,则需要使用 javascript 来设置参数...(据我所知)

希望这可以帮助

于 2013-06-24T23:14:34.557 回答