【问题标题】:Scrollable multi level horizontal menu可滚动的多级水平菜单
【发布时间】:2016-11-05 13:11:24
【问题描述】:

我正在尝试创建一个多级可滚动水平菜单。子菜单可以很好地上升到 n 级,但是当顶级 li 项目的数量更多并且无法适应页面时,滚动条不会出现。相反,他们开始进入下一行。

下面是完整代码

<html>
	<head>
	<style type="text/css">

   

	#nav, #nav ul{
margin:0;
padding:0;
list-style-type:none;
list-style-position:outside;
position:relative;
line-height:1.5em; 
}

#nav a{
display:block;
padding:0px 5px;
border:1px solid #333;
color:#fff;
text-decoration:none;
background-color:#333;
}

#nav a:hover{
background-color:#fff;
color:#333;
}

#nav li{
float:left;
position:relative;
}

#nav ul {
position:absolute;
display:none;
width:12em;
top:1.5em;
}

#nav li ul a{
width:12em;
height:auto;
float:left;
}

#nav ul ul{
top:auto;
}	

#nav li ul ul {
left:12em;
margin:0px 0 0 10px;
}

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li:hover ul ul ul ul{
display:none;
}
#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li li li li:hover ul{
display:block;
}




	</style>		
	</head>
	<body>
          <ul id="nav">
                <li>
                    <a href="#">3 Javascript</a>
                    <ul>
                        <li>
                            <a href="#">3.1 jQuery</a>
                            <ul>
                                <li>
                                    <a href="#">3.1.1 Download</a>
                                    <ul>
                                        <li>
                                            <a href="#">3.1.1 New Download</a>

                                        </li>
                                        <li><a href="#">3.1.2 New Tutorial</a></li>
                                    </ul>
                                </li>
                                <li><a href="#">3.1.2 Tutorial</a></li>
                            </ul>
                        </li>
                        <li><a href="#">3.2 Mootools</a></li>
                        <li><a href="#">3.3 Prototype</a></li>
                    </ul>
                </li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>

                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>
                <li><a href="#">1 HTML</a></li>
                <li><a href="#">2 CSS</a></li>




         
            </ul>
     




</body>
</html>

【问题讨论】:

    标签: html css menu submenu


    【解决方案1】:

    <html>
    	<head>
    	<style type="text/css">
    
       
    
    	#nav, #nav ul{
    margin:0;
    padding:0;
    list-style-type:none;
    list-style-position:outside;
    position:relative;
    line-height:1.5em; 
    width: 100%;
    overflow-x: scroll;
    white-space: nowrap;
    }
    
    #nav a{
    display:block;
    padding:0px 5px;
    border:1px solid #333;
    color:#fff;
    text-decoration:none;
    background-color:#333;
    }
    
    #nav a:hover{
    background-color:#fff;
    color:#333;
    }
    
    #nav li{
    display: inline-block;
    position:relative;
    }
    
    #nav ul {
    position:absolute;
    display:none;
    width:12em;
    top:1.5em;
    }
    
    #nav li ul a{
    width:12em;
    height:auto;
    float:left;
    }
    
    #nav ul ul{
    top:auto;
    }	
    
    #nav li ul ul {
    left:12em;
    margin:0px 0 0 10px;
    }
    
    #nav li:hover ul ul, #nav li:hover ul ul ul, #nav li:hover ul ul ul ul{
    display:none;
    }
    #nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li li li li:hover ul{
    display:block;
    }
    
    
    
    
    	</style>		
    	</head>
    	<body>
              <ul id="nav">
                    <li>
                        <a href="#">3 Javascript</a>
                        <ul>
                            <li>
                                <a href="#">3.1 jQuery</a>
                                <ul>
                                    <li>
                                        <a href="#">3.1.1 Download</a>
                                        <ul>
                                            <li>
                                                <a href="#">3.1.1 New Download</a>
    
                                            </li>
                                            <li><a href="#">3.1.2 New Tutorial</a></li>
                                        </ul>
                                    </li>
                                    <li><a href="#">3.1.2 Tutorial</a></li>
                                </ul>
                            </li>
                            <li><a href="#">3.2 Mootools</a></li>
                            <li><a href="#">3.3 Prototype</a></li>
                        </ul>
                    </li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
    
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
                    <li><a href="#">1 HTML</a></li>
                    <li><a href="#">2 CSS</a></li>
    
    
    
    
             
                </ul>
         
    
    
    
    
    </body>
    </html>

    这是你想要达到的目标吗?

    【讨论】:

    • 感谢您的回复。几乎就在那里..如果您将鼠标悬停在名称为 Javascript 的第一个 li 上,我们应该能够看到带有列表“Jquey”的子菜单以及它的子菜单。你能告诉我如何实现这一目标。谢谢。
    【解决方案2】:

    前面的答案没有正确解释实际的代码解决方案是什么。虽然代码是正确的。我想指出这很可能是“导航” div 中的高度问题。您不应该将高度设置为自动。而是保持它固定,以便浏览器滚动其余部分。如果列表长于宽度,您也可以尝试“溢出”样式来设置滚动。

    【讨论】:

    • 嗨,下面的 Ron.basco 也做了同样的事情,但是如果我将鼠标悬停在名称为“javascript”的第一个 li 元素上,我必须能够看到它的子菜单仍然无法正常工作。知道如何实现这一目标。
    猜你喜欢
    • 1970-01-01
    • 2015-12-29
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多