Css3垂直手风琴下拉列表菜单

下载地址

这是一款简单但实用的多级垂直手风琴下拉列表菜单。该多级手风琴菜单完全使用CSS来制作,它通过将不同的子菜单进行分组,制作出多级菜单的效果。该多级手风琴菜单通过在checkbox元素上使用:checked伪元素来制作。如果需要一些好看的动画效果,可以实用插件中提供的main.js文件,它可以提供菜单打开和收缩时左侧小箭头的动画效果。该多级手风琴菜单的HTML结构非常简单:整个手风琴是一个无序列表。如果某个列表项中包含有子菜单,则添加一个input[type=checkbox]和一个label标签,同时为该列表项添加一个.has-children的class类。所有其它标准的列表项都包含在一个a标签中。

该多级手风琴菜单仅使用CSS来检测点击和展开子菜单。它使用的方法是通过checkbox元素,然后通过:checked伪类和相邻的兄弟选择器来改变

  • 元素的显示模式,从“none”改变为“block”。首先需要确保所有有子菜单的列表项都带有checkbox元素。当你点击在一个label元素上的时候,实际是点击了相应的checkbox元素:这通过设置label元素的for属性来实现。接着就可以简单的隐藏checkbox元素,通过label元素来取代它。.cd-accordion-menu input[type=checkbox] { /* hide native checkbox */ position: absolute; opacity: 0;}.cd-accordion-menu label, .cd-accordion-menu a { position: relative; display: block; padding: 18px 18px 18px 64px; background: #4d5158; box-shadow: inset 0 -1px #555960; color: #ffffff; font-size: 1.6rem;} 通过HTML结构可以看出,checkbox元素和label元素以及子菜单无序列表是兄弟节点的关系。通过使用:checked伪类,我们可以做如下的设置:当checkbox被选中的时候(label被点击),可以获取它的兄弟节点
    • 元素,并设置它的可见性,从“none”修改为“block”。.cd-accordion-menu ul { /* by default hide all sub menus */ display: none;} .cd-accordion-menu input[type=checkbox]:checked + label + ul,.cd-accordion-menu input[type=checkbox]:checked + label:nth-of-type(n) + ul { /* use label:nth-of-type(n) to fix a bug on safari (<= 8.0.8) with multiple adjacent-sibling selectors*/ /* show children when item is checked */ display: block;}如果你需要为这个手风琴菜单添加一些好看的动画效果,可以使用jQuery和插件中提供的main.js文件。同时需要在ul.cd-accordion-menu元素上添加.animate class类,它会使小箭头的方向在打开和关闭子菜单时产生动画效果。

      7b6c0187eeb19836195f3b421eb31dbc26636.jpg

      dd:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个基于HTML、CSS和JavaScript的简单垂直手风琴菜单列表代码,你可以根据自己的需要进行修改和定制。 HTML代码: ```html <div class="accordion"> <div class="accordion-item"> <div class="accordion-header">Item 1</div> <div class="accordion-content">This is item 1 content.</div> </div> <div class="accordion-item"> <div class="accordion-header">Item 2</div> <div class="accordion-content">This is item 2 content.</div> </div> <div class="accordion-item"> <div class="accordion-header">Item 3</div> <div class="accordion-content">This is item 3 content.</div> </div> </div> ``` CSS代码: ```css .accordion { display: flex; flex-direction: column; } .accordion-item { border: 1px solid #ccc; margin-bottom: 10px; } .accordion-item:last-child { margin-bottom: 0; } .accordion-header { background-color: #f7f7f7; padding: 10px; cursor: pointer; } .accordion-header:hover { background-color: #e7e7e7; } .accordion-content { background-color: #fff; padding: 10px; display: none; } ``` JavaScript代码: ```javascript const accordionItems = document.querySelectorAll('.accordion-item'); accordionItems.forEach(item => { const header = item.querySelector('.accordion-header'); const content = item.querySelector('.accordion-content'); header.addEventListener('click', () => { // toggle active class item.classList.toggle('active'); // toggle content if (item.classList.contains('active')) { content.style.display = 'block'; } else { content.style.display = 'none'; } }); }); ``` 这段代码实现了基本的手风琴效果,点击标题会展开或关闭对应的内容。如果需要更多的样式和功能,可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值