【问题标题】:CSS: Horizontal sub-menu problemCSS:水平子菜单问题
【发布时间】:2013-04-24 03:27:21
【问题描述】:

我一直在尝试使子菜单水平。

在我的 HTML 中是这样的:

<ul id="nav">
    <li><a href="#">Home</a></li>
    <li><a href="#" class="selected">About Us</a>
        <!-- I want to make this horizontal -->
        <ul id="subnav">
            <li><a href="#">Item 01</a></li>
            <li><a href="#" class="selected">Item 02</a></li>
            <li id="nav_last"><a href="#">Item 03</a></li>
        </ul>
        <!-- End here -->
    </li>
 </ul>

我的列表 CSS 是这样的:

/* remove the list style */
#nav {
    margin:0; 
    padding:0; 
    list-style:none;
}   

/* make the LI display inline */
/* it's position relative so that position absolute */
/* can be used in submenu */
#nav li {
    float:left; 
    display:block; 
    width:100px; 
    background:#d90000; 
    position:relative;
    z-index:500; 
    margin:0 1px;
}

/* this is the parent menu */
#nav li a {
    display:block; 
    /*padding:8px 5px 0 5px; */
    padding-top: 11px;
    font-weight:normal;  
    height:30px; 
    text-decoration:none; 
    text-align:center; 
    color:#f8e2e2;
}

#nav li a:hover {
    color:#f8e2e2;
    background-color: #bf0000;
    border-left: 1px solid #a50000;
    border-right: 1px solid #a50000;
}

#subnav {
    position:absolute; 
    left:0; 
    display:none; 
    margin: 0 0 0 0;
    padding:12px 0 0 0; 
    list-style:none;
    background-image: url('../images/arrow_down.png');
    background-repeat: no-repeat;
}

#subnav li{
    font-size: 0.9em;

    border-top:1px solid #a50000;
    border-left:1px solid #a50000;
    border-right:1px solid #a50000;

    position:relative;
    width:98px; 
    display:block; 
    float:left;
}

我正在使用 jQuery 来显示/隐藏子列表。我的问题是子菜单不是水平的。我需要对 CSS 进行哪些更改才能使子菜单变为水平?我花了几个小时没有任何成功。

非常感谢!

【问题讨论】:

  • @wenbert 你也可以发布 jQuery,也许你需要添加 float:left;给你导航
  • 我知道这已得到解答,但您能否发布一个完整代码的 jsfiddle,因为它可以帮助其他对同样问题感兴趣的人。
  • @puk 抱歉,我已经“丢失”了完整的代码。但我记得当我指定容器的宽度以使其更宽时,它是固定的。
  • @wenbert 他们中的任何人都可以在 JSFiddile 中发布此解决方案的整个代码吗?

标签: css menu


【解决方案1】:

#subnav上设置一个宽的宽度,例如

#subnav {
    width: 600px;
}

【讨论】:

    【解决方案2】:

    #subnav li 项目应该是 "display:inline" 而不是块。

    另外,扩大 ul 的宽度,如另一个答案中所述。

    【讨论】:

    • display:block 工作得很好,他正在浮动列表项。关键是扩大宽度。
    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2014-12-20
    相关资源
    最近更新 更多