【问题标题】:css dropdown menu alignmentcss下拉菜单对齐
【发布时间】:2013-06-25 07:14:34
【问题描述】:

我使用基于 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;
}

任何帮助将不胜感激!

【问题讨论】:

    标签: html css drop-down-menu menu


    【解决方案1】:

    更改为相对位置

    .ulRight li > ul{
    position:relative;
    top:0;
    }
    

    【讨论】:

      【解决方案2】:

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

      .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 来设置参数...(据我所知)

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-30
        • 1970-01-01
        • 1970-01-01
        • 2014-03-20
        • 1970-01-01
        相关资源
        最近更新 更多