【问题标题】:Long Navigation bar introducing horizontal scroll?引入水平滚动的长导航栏?
【发布时间】:2014-06-25 11:12:19
【问题描述】:

我设计了一个导航栏,其中下拉菜单相对于其父列表项绝对定位(主菜单列表为position: relative 和子菜单position: absolute)。

我的 navbar 的主列表很长(一直延伸到页面的右端)。因此,当我将鼠标悬停在最后一个主菜单项上时,我的下拉菜单会占据它的宽度,并且页面会引入水平滚动(超出正文内容)。

我希望页面两端的下拉菜单从右向左打开,这样它们就位于正文内,并且不会引入滚动。

我怎样才能做到这一点???请帮忙。

我设计了如下导航栏:

HTML:

<ul id="menu">
    <li><a href="#">Home</a></li>
    <li>
        <a href="#">Categories</a>
        <ul>
            <li><a href="#">CSS</a></li>
            <li><a href="#">Graphic design</a></li>
            <li><a href="#">Development tools</a></li>
            <li><a href="#">Web design</a></li>
        </ul>
    </li>
    <li><a href="#">Work</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
</ul>

CSS:

#menu li {
    float: left;
    border-right: 1px solid black;
    box-shadow: 1px 0 0 #444;
    position: relative;
}
#menu ul {
    position: absolute;
    top: 38px;
    left: 0;
    margin: 20px 0 0 0;
    opacity: 0;
    visibility: hidden;
        transition: all .2s ease-in-out;
}

#menu ul ul {
    top: 0;
    left: 195px;
    margin: 0 0 0 20px;
}

#menu ul a {    
    padding: 10px;
    width: 175px;
    _height: 10px; /*IE6 only*/
    display: block;
    white-space: nowrap;
    float: none;
    text-transform: none;
}

【问题讨论】:

  • 试试这个 css #menu{overflow:hidden;}
  • @RohitBatham 这将隐藏子菜单。

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:
#menu li:last-child ul {
    left: auto;
    right: 0;
}

【讨论】:

  • 考虑提供一些解释!
  • @Niels:这只会迎合最后一个下拉菜单。倒数第二个下拉菜单(或上一个)的子菜单也会扩展并引入滚动。在那种情况下?
  • @Console 这还不够自我解释吗? :P @Siddharth 然后使用 nth-last-child 构造。
猜你喜欢
  • 2016-02-08
  • 2011-08-09
  • 1970-01-01
  • 2017-02-08
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多