css - 下拉菜单移至右侧

标签 css css-position

我的下拉菜单运行良好,除了一个我无法解决的小错误。

第一个下拉菜单项正常显示。但是,第二个下拉菜单项稍微向右移动。我猜测我为链接设置的右边距导致下拉菜单稍微向右移动。如果是这样,我该怎么做才能解决这个问题?

这是一个简单的导航菜单,它将下拉菜单项的位置设置为绝对位置,并被父元素的溢出:隐藏功能隐藏。悬停时,下拉菜单将显示为溢出:可见。

实时站点在这里 -> nav menu

CSS

#mainMenu {
    position: relative;
}

#mainMenu ul {
    list-style: none;
    float: right;
    background-color: #FFFFFF;
}

#mainMenu ul li {
    position: relative;
    display: inline;
    float: left;
    /*padding-right: 1.5em;*/
    font-size: 1.2em;
    zoom:1;
    overflow: hidden;
}

#mainMenu>ul>li {
    line-height: 2em;
}

#mainMenu ul li:hover {
    overflow: visible;
}

#mainMenu ul li a {
    float: left;
    text-decoration: none;
    color: black;
    padding: 0 1em;
}

#mainMenu>ul>li:last-child a {
    padding:0.4em 1em 0.4em 1em;
    border-radius:4px;
    background-color: #00b200;
    color: #FFFFFF;
}

#mainMenu ul li a:hover{
    text-decoration: none;
    color: rgb(42, 160, 239);
}

#mainMenu ul ul{
    position: absolute;
    top: 2em;
    left: 60%;
    width: 10em;
    margin-left: -3em;
    height: auto;
    border: solid #CCC;
    border-width: 0 1px 1px;
}

#mainMenu ul ul:first-child{
    padding-top: 2em;
}

#mainMenu ul ul li,
#mainMenu ul ul a {
    display:block;
    float:none;
    border:0;
    box-shadow:none;
    text-align:center;
    font-size: 1em;
    padding: 0.4em;
    text-align: left;
}

#mainMenu ul ul li:first-child {
    border-top:1px solid rgb(72, 147, 196);
}

#mainMenu ul ul li {
    border-top: 1px solid #e9e9e9;
}

#mainMenu a:active,
#mainMenu a:focus,
#mainMenu a:hover {
    background:#F2F6FA;
    color:#333;
}

HTML

 <div id="nav-row">
            <h1>
                <a href="\">
                    Corporate Site
                    <span></span>
                </a>
            </h1>

            <div id="mainMenu">
                <a href="#mainMenu" class="showMenu"></a>
                <a href="#" class="hideMenu"></a>

            <ul>
                <li><a href="About">About</a>
                    <ul>
                        <li class="company"><a href="#">Company Profile</a></li><li class="team">
                        <a href="#">The Team</a></li><li class="linsux">
                        <a href="#">Pricing Packages</a></li>
                    </ul></li>
                <li><a href="Services">Services</a>
                    <ul>
                        <li class="webDesign"><a href="#">Websites</a></li><li class="Emails">
                        <a href="#">Landing Pages</a></li><li class="Logos">
                        <a href="#">Logos</a></li>
                    </ul></li>
                </li>
                <li><a href="Case Studies">Case Studies</a></li><li>
                <a href="Blog">Blog</a></li><li>
                <a href="Contact">Contact</a></li><li>
                <a href="Free Web Analysis">Free Web Analysis</a></li>
            </ul>
            </div>
        </div>

最佳答案

这是因为您使用缩进父级宽度的子菜单 % ,而父级宽度不一样。 margin-left: -3em 是一个常量。

使用,例如:

left: -10px; /* I see the first submenu cca. 10px before the parent LI */
margin-left: 0;

不知道为什么缩进 60% 并使用 -3em 将子菜单向后移动。

关于css - 下拉菜单移至右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28849624/

相关文章:

html - 如何在 IE 7 的表格单元格内的 div 中右对齐工作?

css - 试图居中 UL

javascript - 为什么 JS 框架使用内联样式而不是 CSS 进行布局

css - 将 DIV 定位到居中容器的两侧

html - 背景图片一直在 div 之外?

css - 固定 div 随页面滚动

javascript - 如何让 Next/Prev 链接留在 CarouFredSel 幻灯片的两侧

html - 滚动时如何让文本与背景图像保持固定?

html - 为什么我的绝对/固定定位元素没有位于我期望的位置?

css - 为什么具有z-index值的元素不能覆盖其子级?