导航菜单

简单多级垂直手风琴下拉列表菜单

阿里云

这是一款简单但实用的多级垂直手风琴下拉列表菜单。该多级手风琴菜单完全使用 CSS 来制作,它通过将不同的子菜单进行分组,制作出多级菜单的效果。该多级手风琴菜单通过在 checkbox 元素上使用:checked 伪元素来制作。如果需要一些好看的动画效果,可以实用插件中提供的 main.js 文件,它可以提供菜单打开和收缩时左侧小箭头的动画效果。

HTML 结构:

该多级手风琴菜单的 HTML 结构非常简单:整个手风琴是一个无序列表。如果某个列表项中包含有子菜单,则添加一个 input[type=checkbox]和一个 label 标签,同时为该列表项添加一个.has-children 的 class 类。所有其它标准的列表项都包含在一个 a 标签中。

也想出现在这里?联系我们
创客主机
  1. <ul class="cd-accordion-menu">
  2.   <li class="has-children">
  3.     <input type="checkbox" name ="group-1" id="group-1" checked>
  4.     <label for="group-1">Group 1</label>
  5.  
  6.       <ul>
  7.         <li class="has-children">
  8.           <input type="checkbox" name ="sub-group-1" id="sub-group-1">
  9.         <label for="sub-group-1">Sub Group 1</label>
  10.  
  11.         <ul>
  12.           <li><a href="#0">Image</a></li>
  13.           <li><a href="#0">Image</a></li>
  14.           <li><a href="#0">Image</a></li>
  15.         </ul>
  16.         </li>
  17.         <li><a href="#0">Image</a></li>
  18.       <li><a href="#0">Image</a></li>
  19.       </ul>
  20.   </li>
  21.  
  22.   <li><a href="#0">Image</a></li>
  23.   <li><a href="#0">Image</a></li>
  24. </ul> <!-- cd-accordion-menu -->

CSS 样式:

该多级手风琴菜单仅使用 CSS 来检测点击和展开子菜单。它使用的方法是通过 checkbox 元素,然后通过:checked 伪类和相邻的兄弟选择器来改变[ul]元素的显示模式,从“none”改变为“block”。首先需要确保所有有子菜单的列表项都带有 checkbox 元素。当你点击在一个 label 元素上的时候,实际是点击了相应的 checkbox 元素:这通过设置 label 元素的 for 属性来实现。接着就可以简单的隐藏 checkbox 元素,通过 label 元素来取代它。

  1. .cd-accordion-menu input[type=checkbox] {
  2.   /* hide native checkbox */
  3.   position: absolute;
  4.   opacity: 0;
  5. }
  6. .cd-accordion-menu label, .cd-accordion-menu a {
  7.   position: relative;
  8.   display: block;
  9.   padding: 18px 18px 18px 64px;
  10.   background: #4d5158;
  11.   box-shadow: inset 0 -1px #555960;
  12.   color: #ffffff;
  13.   font-size: 1.6rem;
  14. }

通过 HTML 结构可以看出,checkbox 元素和 label 元素以及子菜单无序列表是兄弟节点的关系。通过使用:checked 伪类,我们可以做如下的设置:当 checkbox 被选中的时候(label 被点击),可以获取它的兄弟节点[ul]元素,并设置它的可见性,从“none”修改为“block”。

  1. .cd-accordion-menu ul {
  2.   /* by default hide all sub menus */
  3.   display: none;
  4. }
  5.  
  6. .cd-accordion-menu input[type=checkbox]:checked + label + ul,
  7. .cd-accordion-menu input[type=checkbox]:checked + label:nth-of-type(n) + ul {
  8.   /* use label:nth-of-type(n) to fix a bug on safari (<= 8.0.8) with multiple adjacent-sibling selectors*/
  9.   /* show children when item is checked */
  10.   display: block;
  11. }

JavaScript 代码:

如果你需要为这个手风琴菜单添加一些好看的动画效果,可以使用 jQuery 和插件中提供的 main.js 文件。同时需要在 ul.cd-accordion-menu 元素上添加.animate class 类,它会使小箭头的方向在打开和关闭子菜单时产生动画效果。

简单多级垂直手风琴下拉列表菜单

已有 494 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(1)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!