可滚动的多级水平菜单

时间:2016-11-05 13:11:24

标签: css html5 css3 menu submenu

我正在尝试创建一个多级可滚动水平菜单。子菜单精确到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>

2 个答案:

答案 0 :(得分:0)

<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>

这是你想要实现的目标吗?

答案 1 :(得分:0)

上一个答案没有正确解释实际的代码解决方案是什么。虽然代码是正确的。我想指出这很可能是&#34; nav&#34; DIV。你应该把高度设置为自动。而是保持固定,以便浏览器滚动其余部分。你也可以试试&#34;溢出&#34;如果列表长度超过宽度,则设置滚动的样式。