…">
当前位置:首页 > CSS

css 制作下拉列表

2026-01-28 12:30:55CSS

使用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结构:

css 制作下拉列表

<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');
  });
});

响应式设计考虑

媒体查询适配不同屏幕:

css 制作下拉列表

@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);
});

标签: 列表css
分享给朋友:

相关文章

css导航条制作

css导航条制作

基础导航条制作 使用HTML的无序列表<ul>和CSS的display: flex属性可以快速创建横向导航条。HTML结构通常包含导航链接列表,CSS负责样式和布局。 <nav&g…

css二级菜单制作

css二级菜单制作

使用纯CSS实现二级菜单 通过嵌套HTML结构和CSS选择器实现二级菜单的显示与隐藏效果。以下是一个基础实现方案: HTML结构: <ul class="menu"> <li…

css如何制作三角形

css如何制作三角形

使用 border 属性制作三角形 通过设置元素的 border 属性,利用边框的透明特性可以创建三角形。将一个元素的宽度和高度设为 0,然后通过设置不同方向的边框宽度和颜色来实现。 .triang…

网页制作教程css

网页制作教程css

CSS 基础概念 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。通过将样式与 HTML 结构分离,提升代码可维护性。 CSS 引入方式 内联样式:直接在 HTML 标签中使…

怎么制作css文档

怎么制作css文档

创建CSS文档的基本步骤 新建一个纯文本文件,将文件后缀名改为.css,例如styles.css。使用代码编辑器(如VS Code、Sublime Text等)打开文件,开始编写CSS规则。 编写C…

css制作炫酷按钮

css制作炫酷按钮

渐变背景按钮 使用CSS的linear-gradient属性创建渐变背景效果,结合阴影和过渡动画增强视觉冲击力。按钮悬停时通过改变渐变角度或颜色实现动态效果。 .gradient-btn { b…