…">
当前位置:首页 > 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结构:

<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同步更新状态:

css 制作下拉列表

toggle.addEventListener('click', function() {
  const expanded = this.getAttribute('aria-expanded') === 'true';
  this.setAttribute('aria-expanded', !expanded);
});

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

相关文章

css表格制作表格

css表格制作表格

CSS 表格制作方法 使用 CSS 创建表格可以通过多种方式实现,包括原生 HTML 表格元素结合 CSS 样式,或者使用纯 CSS 布局技术(如 Flexbox 或 Grid)模拟表格效果。以下是常…

制作css外部

制作css外部

创建CSS外部文件的方法 新建一个纯文本文件,将文件扩展名改为.css,例如styles.css。确保文件内容只包含CSS代码,不包含HTML标签。 编写CSS内容 在CSS文件中直接编写样式规则,…

制作css表格

制作css表格

基础CSS表格结构 使用HTML的<table>标签创建表格骨架,搭配CSS控制样式。以下是一个基础示例: <table class="styled-table"> &l…

css制作靶子

css制作靶子

CSS 制作靶子 使用 CSS 可以轻松创建一个靶子效果,主要通过嵌套的圆形元素和背景色实现。以下是实现方法: HTML 结构 <div class="target"> <d…

css制作栅格

css制作栅格

CSS 栅格布局基础 CSS Grid 布局是一种强大的二维布局系统,允许开发者通过行和列来设计复杂的网页布局。栅格系统由容器(grid container)和项目(grid items)组成。 定…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…