能否为Dropdown添加描述?求实现图中样式下拉菜单的方案
可以实现该样式的下拉菜单
这种带分组样式的自定义下拉菜单完全可以通过HTML、CSS和JavaScript实现,下面是对应示例代码:
实现代码
HTML 结构
<div class="custom-dropdown"> <button class="dropdown-trigger">选择选项 ▼</button> <div class="dropdown-content"> <div class="dropdown-group"> <div class="group-title">分组1</div> <div class="dropdown-item">选项1-1</div> <div class="dropdown-item">选项1-2</div> </div> <div class="dropdown-group"> <div class="group-title">分组2</div> <div class="dropdown-item">选项2-1</div> <div class="dropdown-item">选项2-2</div> <div class="dropdown-item">选项2-3</div> </div> </div> </div>
CSS 样式
.custom-dropdown { position: relative; width: 200px; } .dropdown-trigger { width: 100%; padding: 8px 12px; border: 1px solid #ccc; border-radius: 4px; background: #fff; cursor: pointer; text-align: left; } .dropdown-content { display: none; position: absolute; top: 100%; left: 0; right: 0; border: 1px solid #ccc; border-top: none; border-radius: 0 0 4px 4px; background: #fff; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .dropdown-group { padding: 8px 0; border-bottom: 1px solid #eee; } .dropdown-group:last-child { border-bottom: none; } .group-title { padding: 4px 12px; font-size: 12px; color: #666; font-weight: bold; } .dropdown-item { padding: 6px 12px; cursor: pointer; } .dropdown-item:hover { background-color: #f5f5f5; } .custom-dropdown.active .dropdown-content { display: block; }
JavaScript 交互
const dropdownTrigger = document.querySelector('.dropdown-trigger'); const customDropdown = document.querySelector('.custom-dropdown'); dropdownTrigger.addEventListener('click', () => { customDropdown.classList.toggle('active'); }); // 点击外部关闭下拉菜单 document.addEventListener('click', (e) => { if (!customDropdown.contains(e.target)) { customDropdown.classList.remove('active'); } });
关键说明
- 自定义下拉菜单摆脱了原生
<select>的样式限制,能完全匹配图中的分组、排版样式 - 通过添加/移除
active类控制下拉面板的显示隐藏 - 可根据需求调整颜色、间距、字体等样式,完全复刻目标效果
内容的提问来源于stack exchange,提问作者Kaygee Del Hlobo
相关产品推荐
相关产品推荐

