css - super 滑出式菜单

标签 css navigation nav

大家好,我想从垂直菜单创建一种大型滑出式菜单,但这样做有一些困难。

我的导航 html 是沼泽标准的 3 层菜单,例如

<ul>
    <li><a href="#">Level 1 Item 1</a>
        <li><a href="#">Level 2 Item 1</a>
        <ul>
            <li><a href="#">Level 3 Item 1</a></li>
            <li><a href="#">Level 3 Item 1</a></li>
        </ul>
        </li>
        <li><a href="#">Level 2 Item 2</a>
        <ul>
            <li><a href="#">Level 3 Item 1</a></li>
            <li><a href="#">Level 3 Item 1</a></li>
        </ul>
        </li>
        <li><a href="#">Level 2 Item 3</a></li>
        <li><a href="#">Level 2 Item 4</a></li>
        <li><a href="#">Level 2 Item 5</a></li>
    </li>

我想要的如下图所示:

Example Image

我在我想要的地方有导航,我有它,所以当我将鼠标悬停在第 1 级元素上时,第 2 级显示。我只是不确定如何让第 3 级显示在第 2 级元素下面

任何帮助将不胜感激。

谢谢

编辑 抱歉,伙计们忘记了我所拥有的 CSS,我不确定它是否适合我需要知道的内容:

.nav-container {float:left;}
#nav { width:220px; height:260px; font-size:13px;}

#nav li { text-align:left; list-style-type: none; position:relative; }

#nav li > ul {display:none;}

 #nav li:hover > ul{
     width:676px;
     height:260px;
     display: block;
     position:absolute;
     z-index:9999;
     left:220px;
     top:auto;
 }
 #nav ul li {
     padding:0 20px;
     display:inline;
 }

目前此 css 正确定位第一级,第二级显示在正确位置,第二级元素正确定位,我只是不确定如何将第三级元素定位在第二级元素下

编辑 2

我按照你们所说的构建了导航,只是没有输入正确!,我已经编辑了帖子以显示它,谢谢

最佳答案

这里提供的代码是一个很好的起点。

第一个问题,你的结构。

使用这样的结构,因为它可以更轻松地在树中更深入地定位和设置关卡样式。

fiddle :http://jsfiddle.net/SinisterSystems/hz45B/6/

  • 一级
    • 2 级
      • 3 级
      • 3 级
    • 2 级
      • 3 级
      • 3 级
  • 一级
    • 2 级
      • 3 级
      • 3 级
    • 2 级
      • 3 级
      • 3 级
<ul>
    <li><a href="#">Level 1</a>
        <ul>
            <li><a href="#">Level 2</a>
                <ul>
                    <li><a href="#">Level 3</a></li>
                    <li><a href="#">Level 3</a></li>
                </ul>
            </li>
            <li><a href="#">Level 2</a>
                <ul>
                    <li><a href="#">Level 3</a></li>
                    <li><a href="#">Level 3</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="#">Level 1</a>
        <ul>
            <li><a href="#">Level 2</a>
                <ul>
                    <li><a href="#">Level 3</a></li>
                    <li><a href="#">Level 3</a></li>
                </ul>
            </li>
            <li><a href="#">Level 2</a>
                <ul>
                    <li><a href="#">Level 3</a></li>
                    <li><a href="#">Level 3</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

CSS:

li {
    padding:25px;
    border:1px solid #000;
    list-style:none;
    width:100px;
}
ul ul {
    display:none;
}
ul > li:hover > ul {
    display:block;
}

fiddle :http://jsfiddle.net/SinisterSystems/hz45B/6/

此时,对于第三个 ul 列表,只需应用此 CSS:

确保将您的 ul ul 设置在 position: relative;

ul ul ul {
    position:absolute;
    top:100%;
    left:0;
}

肮脏的例子,但你明白了:

http://jsfiddle.net/SinisterSystems/hz45B/7/

关于css - super 滑出式菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21344143/

相关文章:

html - 如果 span 标记中没有任何文本,则不会显示 span 中的背景图像

jquery - Pikachoose/Fancybox 集成 - 灯箱上的导航箭头

html - 粘性顶部导航但下拉菜单不显示

html - 选择 class 还是 <nav> 元素更可取?

html - 背景图片不会显示在标题中?

html - 响应式 super 菜单问题

jquery - 切换到 jQuery 1.9.1 时窗口高度计算停止

html - Bootstrap 3 网格中同一行中同一类的样式列

jquery - 在页面加载时保持树状菜单打开

javascript - 如何使这个 jQuery 移动导航脚本仅在小屏幕上触发?