Inb*_*ons 5 html css horizontal-scrolling drop-down-menu
我正在尝试为具有以下要求的 HTML5 页面构建一个(可能)纯 CSS 菜单:
视觉上:
-------------------------------------------------- -----------------------
| < | 菜单 1 | 菜单 2 + | 菜单 3 | 菜单 4 | > |
-------------------------------------------------- -----------------------
| 菜单 2.1 |
--------------
| 菜单 2.2 + |--------------
-------------- 菜单 2.2.1 |
| 菜单 2.1 |--------------
-------------- 菜单 2.2.2 |
|---------------
其中<和>按钮将主菜单向左或向右滚动(最终打开的子项目应自行解除)。
我也想只使用 CSS(不使用 JavaScript),但这是一个选项。
我已经花了很多时间来做这个和测试,但我没有得到任何令人满意的例子。
请建议我如何实现这一目标。
你可以很容易地做到这一点。
你首先需要一个使用 html 列表的树状结构:
<ul class="my-menu">
<li>
TOP 1
<ul>
<li>
1 - 1 >
<ul>
<li>
1 - 1 - 1
</li>
<li>
1 - 1 - 2
</li>
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
您需要并排显示第一级才能获得水平菜单:
ul.my-menu > li {
display : inline-block;
}
Run Code Online (Sandbox Code Playgroud)
对于第二级,我们希望它显示在 TOP1 文本的正下方。所以我们将其放在绝对位置:
ul.my-menu > li > ul{
position : absolute;
}
Run Code Online (Sandbox Code Playgroud)
现在让我们隐藏第二层和第三层。
ul.my-menu > li > ul li{
display: none;
}
Run Code Online (Sandbox Code Playgroud)
最后我们可以添加悬停逻辑。基本上我们会说如果我的父“li”悬停然后显示我。
ul.my-menu li:hover > ul > li {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
当然,在显示方面还需要多下工夫。框的大小和位置非常重要,因为鼠标不会离开父级的边界,从而关闭显示。
这是一个jsfiddle: https: //jsfiddle.net/9mbLabj4/1/
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |