…">
当前位置:首页 > 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
分享给朋友:

相关文章

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义…

css 制作表格

css 制作表格

基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<th>(表头)和<td>(单元格)标签。例如: <table…

css制作表格

css制作表格

使用HTML和CSS创建表格 HTML中的<table>元素用于创建表格,结合CSS可以调整样式。以下是一个基础示例: <table> <tr> &l…

css制作下拉菜单

css制作下拉菜单

CSS 制作下拉菜单的方法 使用纯 CSS 可以创建简单的下拉菜单效果,主要依赖 :hover 伪类和 display 属性控制子菜单的显示与隐藏。 基础 HTML 结构 <div c…

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form">…

css 制作目录

css 制作目录

CSS 制作目录的方法 使用 CSS 可以轻松为网页内容创建美观且功能性的目录。以下是几种常见方法: 使用 ul 和 li 创建基础目录结构 <div class="toc"> &…