【问题标题】:Multi-level CSS3 Dropdown Menu多级 CSS3 下拉菜单
【发布时间】:2014-07-04 00:49:49
【问题描述】:

正如标题所暗示的,我希望使用 CSS 创建一个成熟的多级下拉菜单。对于如何开始,我一点头绪都没有。我已经取得了一些进展,只是为了将一些代码相互纠缠在一起。我才刚刚开始,希望能提供任何帮助以更好地了解它的运作方式。我理解第一次应用它


CSS 包含在 jsfiddle 中。

http://jsfiddle.net/ks5SL/


HTML

<body class="body">
    <header class="main-header">
        <img src="#" alt="Logo">

        <nav>
            <ul>
                <li class="active"><a href="#">Home</a></li>
                <li><a href="#">Main 1</a></li>
                <li><a href="#">Main 2</a></li>
                <li class="dropdown-left"><a href="#">Main 3</a></li>
                    <ul>
                        <li class="dropdown-right">Sub 1</li>
                            <ul>
                                <li><a href="#">Multi 1</a></li>
                                <li><a href="#">Multi 2</a></li>
                                <li><a href="#">Multi 3/a></li>
                                <li><a href="#">Multi 4</a></li>
                                <li><a href="#">Multi 5</a></li>
                            </ul>
                        <li class="dropdown-right">Sub 2</li>
                            <ul>
                                <li><a href="#">Multi 1</a></li>
                                <li><a href="#">Multi 2</a></li>
                                <li><a href="#">Multi 3/a></li>
                                <li><a href="#">Multi 4</a></li>
                                <li><a href="#">Multi 5</a></li>
                            </ul>
                    </ul>
                <li class="dropdown-left"><a href="#">Main 4</a></li>
                    <ul>
                        <li class="dropdown-right">Sub 1</li>
                            <ul>
                                <li><a href="#">Multi 1</a></li>
                                <li><a href="#">Multi 2</a></li>
                                <li><a href="#">Multi 3/a></li>
                            </ul>
                        <li class="dropdown-right">Sub 2</li>
                            <ul>
                                <li><a href="#">Multi 1</a></li>
                                <li><a href="#">Multi 2</a></li>
                                <li><a href="#">Multi 3/a></li>
                            </ul>
                    </ul>
                <li><a href="#">Main 5</a></li>
            </ul>
        </nav>
    </header>

    <div class="maincontent">
        <div class="content">
            <article class="topcontent">
                <header>
                    <h2><a href="#">Welcome</a></h2>
                </header>

                <footer>
                    <p class="subheader">This is under title of content</p>
                </footer>

                <div class="articlecontent">
                    <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequunt</p>
                    <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequunt</p>
                </div>
            </article>
            <article class="bottomcontent">
                <header>
                    <h2><a href="#">Title of Content</a></h2>
                </header>

                <footer>
                    <p class="subheader">This is under title of content</p>
                </footer>

                <div class="articlecontent">
                    <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequunt</p>
                    <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequunt</p>
                </div>
            </article>
        </div>
    </div>

    <aside class="topsidebar">
        <article>
                <img src="" alt="QR Code" style="display: block; margin: auto;">
        </article>
    </aside>

    <aside class="middlesidebar">
        <article>
            <h2>Middle Sidebar</h2>
            <p>asdgfauisdg oisdaoisdfoia sdfoasfasfsf ufi iufdfia ioudsf oidoiusdf dsf as </p>
        </article>
    </aside>

    <footer class="mainfooter">
        <p>Copyright information, etc.</p>
    </footer>
</body>

【问题讨论】:

  • 在我的书“Functional CSS”中,最后一个案例处理了这个问题。本章着重于构建一个多级下拉菜单,该菜单根据屏幕大小以四种不同的方式显示。菜单是使用定位、弹性框和媒体查询构建的。欢迎您在亚马逊上查看。

标签: html css drop-down-menu menu


【解决方案1】:

已经很晚了,所以简短的解释和示例-希望对您有所帮助:)

您没有将您的子子项附在父菜单中...

应该是这样的:

<ul>
    <li><a href="#">main</a>
        <ul>
            <li><a href="#">sub</a></li>
        </ul>
     </li>
</ul>

示例

HTML 代码:

<ul id="menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">Main 1</a>
        <ul>                                      
            <li><a href="#">sub 1</a>
                <ul>
                    <li><a href="#">sub sub 1</a></li>
                    <li><a href="#">sub sub 2</a></li>
                </ul>
            </li>
            <li><a href="#">sub 2</a></li>
        </ul>
    </li>
</ul>

CSS 代码:

#menu{
    width:100%;
    background:#000;
}


#menu > li{
    display:inline-block;
    position:relative;
    line-height:20px;
}

#menu a{
    display:block;
    text-decoration:none;
    padding:0px 10px;
    color:#fff;
    text-align:center;
}

#menu li ul{
   position: absolute;
   top: 20px;
   left:0;
   min-width:150px;
   background-color:silver;
}

#menu ul ul{
    top:0;
    left:150px;               
}

#menu li li a:hover{
   background:red;
}

#menu li ul{
    display: none;
}

#menu li:hover > ul{
    display:block;
}

小提琴:http://jsfiddle.net/6SDma/

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多