css 制作下拉列表
使用HTML和CSS创建基础下拉列表
HTML结构使用<select>和<option>标签:
<select class="custom-dropdown">
<option value="" disabled selected>选择选项</option>
<option value="1">选项一</option>
<option value="2">选项二</option>
<option value="3">选项三</option>
</select>
基础CSS样式:
.custom-dropdown {
padding: 8px 12px;
border: 1px solid #ccc;
border-radius: 4px;
background-color: white;
font-size: 16px;
width: 200px;
appearance: none; /* 移除默认箭头 */
background-image: url('data:image/svg+xml;utf8,<svg fill="%23333" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');
background-repeat: no-repeat;
background-position: right 8px center;
}
自定义样式下拉菜单(非原生)
HTML结构:

<div class="dropdown">
<button class="dropdown-toggle">选择选项</button>
<ul class="dropdown-menu">
<li data-value="1">选项一</li>
<li data-value="2">选项二</li>
<li data-value="3">选项三</li>
</ul>
</div>
CSS样式:
.dropdown {
position: relative;
display: inline-block;
width: 200px;
}
.dropdown-toggle {
padding: 8px 12px;
border: 1px solid #ccc;
border-radius: 4px;
background-color: white;
width: 100%;
text-align: left;
cursor: pointer;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
width: 100%;
border: 1px solid #ccc;
border-top: none;
border-radius: 0 0 4px 4px;
background-color: white;
list-style: none;
padding: 0;
margin: 0;
display: none;
z-index: 1000;
}
.dropdown-menu li {
padding: 8px 12px;
cursor: pointer;
}
.dropdown-menu li:hover {
background-color: #f5f5f5;
}
.dropdown.active .dropdown-menu {
display: block;
}
添加交互效果的JavaScript
document.querySelector('.dropdown-toggle').addEventListener('click', function() {
document.querySelector('.dropdown').classList.toggle('active');
});
document.querySelectorAll('.dropdown-menu li').forEach(item => {
item.addEventListener('click', function() {
document.querySelector('.dropdown-toggle').textContent = this.textContent;
document.querySelector('.dropdown').classList.remove('active');
});
});
响应式设计考虑
媒体查询适配不同屏幕:

@media (max-width: 768px) {
.dropdown, .custom-dropdown {
width: 100%;
}
}
浏览器兼容性处理
针对旧版浏览器的前缀:
.custom-dropdown {
-webkit-appearance: none;
-moz-appearance: none;
background-image: url('data:image/svg+xml;utf8,<svg...');
}
无障碍访问优化
添加ARIA属性:
<div class="dropdown" aria-haspopup="true" aria-expanded="false">
<button class="dropdown-toggle" aria-controls="dropdown-menu">选择选项</button>
<ul class="dropdown-menu" id="dropdown-menu" role="menu">
<li role="menuitem" tabindex="0">选项一</li>
</ul>
</div>
JavaScript同步更新状态:
toggle.addEventListener('click', function() {
const expanded = this.getAttribute('aria-expanded') === 'true';
this.setAttribute('aria-expanded', !expanded);
});






