如何用css实现侧边栏收缩与展开

答案是通过CSS控制宽度和JavaScript切换类实现侧边栏收缩展开。结构上包含侧边栏、切换按钮和内容区,CSS设置默认宽度200px及过渡动画,.collapsed类将宽度变为60px并调整内边距,JavaScript通过toggleSidebar函数切换collapsed类,实现状态变化,结合.content的margin-left同步变动,确保内容区随侧边栏伸缩移动。可选优化包括使用data-icon显示图标,收缩时隐藏文字仅留图标,提升视觉效果。该方案简洁流畅,易于维护。

如何用css实现侧边栏收缩与展开

实现侧边栏的收缩与展开,核心思路是通过 CSS 控制侧边栏的宽度,并结合 JavaScript 触发状态切换。下面是一个简洁、实用的实现方式。

1. 基础结构与样式

先搭建 HTML 结构:

主内容区

CSS 设置默认展开状态,使用过渡动画让效果更自然:

.sidebar {
  width: 200px;
  height: 100vh;
  background: #333;
  color: white;
  transition: width 0.3s ease;
  overflow: hidden;
}

.sidebar.collapsed {
  width: 60px;
}

.sidebar ul {
  padding: 20px 0;
}

.sidebar li {
  padding: 10px 20px;
  text-align: center;
}

.sidebar li {
  display: block;
}

.sidebar.collapsed li {
  font-size: 12px;
  padding: 10px 0;
}

.toggle-btn {
  background: #555;
  color: white;
  padding: 10px;
  text-align: center;
  cursor: pointer;
}

.content {
  margin-left: 200px;
  padding: 20px;
  transition: margin-left 0.3s ease;
}

.sidebar.collapsed + .content {
  margin-left: 60px;
}

2. 使用 JavaScript 切换状态

添加一个简单的脚本函数来切换类名:

立即学习“前端免费学习笔记(深入)”;

Seede AI Seede AI

AI 驱动的设计工具

Seede AI 586 查看详情 Seede AI function toggleSidebar() {
  document.querySelector(‘.sidebar’).classList.toggle(‘collapsed’);
}

点击按钮时,collapsed 类会被添加或移除,CSS 过渡会自动处理宽度和外边距的变化。

3. 可选优化:图标与文字显示控制

在收缩状态下,可以只保留图标或首字母。例如:

.sidebar li::before {
  content: attr(data-icon);
  display: inline-block;
  width: 20px;
  margin-right: 10px;
}

.sidebar.collapsed li span {
  display: none;
}

然后修改 HTML:

  • 首页
  • 这样在收缩时只显示图标,展开时显示完整文字。

    基本上就这些。用 CSS 的 transition 和类切换就能实现流畅的侧边栏收展效果,搭配简单 JS 控制状态,灵活又易维护。

    以上就是如何用css实现侧边栏收缩与展开的详细内容,更多请关注创想鸟其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
    发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1067502.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2025年12月2日 06:46:38
    下一篇 2025年12月2日 06:47:10

    相关推荐

    • 通过PHP使用Google API创建并公开共享Google表格

      本教程详细介绍了如何使用PHP通过Google Sheets API创建新的Google表格,并利用Google Drive API设置其访问权限,使其可以通过链接公开访问或共享。文章将指导您获取表格URL并按需配置共享权限,确保您能高效地管理通过API创建的表格的可见性。 概述 在使用google…

      2025年12月10日
      000
    • 使用 Google Sheets API 创建可链接访问的电子表格 (PHP)

      本文将指导你如何使用 Google Sheets API 和 PHP 创建一个新的 Google Sheet 电子表格,并使其可以通过链接公开访问。我们将涵盖创建电子表格、获取其 URL 以及设置适当的共享权限,以便任何人都可以查看或编辑该电子表格。 创建电子表格 首先,你需要使用 Google S…

      2025年12月10日
      000
    • 使用 Google Sheets API 创建可链接访问的电子表格

      本文档旨在指导开发者如何使用 Google Sheets API 和 PHP 创建一个可以通过链接访问的电子表格。我们将重点介绍如何使用 API 创建电子表格,获取其 URL,并设置权限,使其可以被拥有链接的任何人访问。通过本文,您将能够轻松地自动化电子表格的创建和共享过程。 创建电子表格并获取 U…

      2025年12月10日
      000
    • 通过Google API创建可链接访问的Google表格教程

      本教程旨在指导您如何使用Google Sheets API和Google Drive API通过PHP创建Google表格,并使其可以通过链接进行访问。我们将详细介绍如何创建表格、获取其可访问URL,以及如何通过Google Drive API设置权限,使其能够公开共享,从而实现通过链接轻松访问。 …

      2025年12月10日
      000
    • PHP 中的静态方法和变量:Web 开发中的持久化问题

      本文旨在阐明 PHP Web 开发中静态方法和变量的特性,以及它们在多用户环境下的适用性。重点强调了 PHP 请求的生命周期,解释了为何静态变量无法在不同请求之间保持状态。同时,介绍了如何在 Web 应用中持久化数据,并对比了 Node.js 等其他环境下的行为差异,为开发者提供了清晰的数据持久化方…

      2025年12月10日
      000
    • PHP Web环境中静态变量的行为、陷阱与数据持久化

      在PHP Web环境中,每次HTTP请求都会创建一个全新的、短生命周期的执行环境。这意味着静态变量的值不会在不同请求或不同用户之间共享或持久化。因此,将敏感信息如支付数据存储在静态变量中不会导致多用户冲突,但也不会实现数据持久化。为实现跨请求或跨用户的数据持久性,应采用数据库或会话机制。本文将深入探…

      2025年12月10日
      000
    • 深入理解Web环境中PHP静态变量与数据持久化策略

      本文深入探讨了PHP在Web环境下静态变量的工作机制,指出其值不会跨HTTP请求持久化,因此不会对多用户平台造成数据混淆。文章强调了对于需要持久化存储的数据,应采用数据库或会话(Session)等外部存储方案,并简要对比了不同编程环境下的差异,提供了数据持久化的通用指导原则。 PHP Web环境下的…

      2025年12月10日
      000
    • 深入理解Web环境中静态变量的工作原理与数据持久化策略

      本文深入探讨了PHP等Web环境中静态变量的运作机制,解释了为何它们不适用于多用户平台的数据持久化。文章详细阐述了Web请求的无状态特性,并提供了数据库和会话数据作为实现数据持久化的核心策略,同时简要提及了Node.js等不同环境下的行为差异及其通用解决方案。 Web环境的无状态本质与静态变量 在理…

      2025年12月10日
      000
    • 精准定制:WooCommerce 购物车菜单在空状态下不显示数量的实现

      本教程旨在解决WordPress和WooCommerce网站中,购物车菜单在空状态下仍显示“0”的问题。通过修改functions.php文件中的代码,我们将学习如何条件性地渲染购物车商品数量,确保当购物车为空时,只显示购物车图标,从而优化用户界面体验。 引言:动态购物车图标的必要性 在现代电子商务…

      2025年12月10日
      000
    • 优化WooCommerce购物车图标:空购物车不显示数量

      本教程旨在解决WordPress + WooCommerce网站中购物车图标在空状态下仍显示“0”的问题。通过修改functions.php文件中的PHP代码,我们将实现当购物车为空时,仅显示购物车图标,而不显示数量圆圈及数字,从而提升用户界面简洁性和购物体验。 问题背景与目标 在wordpress…

      2025年12月10日
      000
    • Laravel Eloquent 模型更新方法详解:避免非静态调用错误

      本文旨在解决Laravel开发中常见的“非静态方法IlluminateDatabaseEloquentModel::update()不能被静态调用”错误。我们将详细讲解如何正确使用Eloquent的update方法进行批量数据更新和单条模型更新,包括带条件和不带条件的更新,以及利用fill()、sa…

      2025年12月10日
      000
    • PHP中从多维数组中查找指定键的最大值及其对应子数组

      针对PHP中处理包含多个子数组的多维数组场景,本文将详细介绍如何高效地查找并提取某个特定键(例如’bid’)具有最大值的子数组。通过结合使用array_column、max和array_keys函数,开发者可以精确地定位目标数据,从而简化复杂数据结构的筛选过程。 场景描述与示…

      2025年12月10日
      000
    • 从多维数组中高效提取指定键的最大值及其对应子数组的PHP方法

      本文详细介绍了如何在PHP中高效地从一个包含多个子数组的多维数组中,根据某个指定键(例如’bid’)的最大值,快速定位并提取出对应的子数组。通过利用PHP内置函数array_column、max和array_keys,可以简洁而有效地实现这一常见的数据处理需求,避免手动循环,…

      2025年12月10日
      000
    • 使用 jQuery AJAX 指定重定向 URL 的方法

      本文介绍了在使用 jQuery AJAX 提交表单后,如何根据服务器返回的 JSON 数据中的特定 redirect 字段进行页面重定向。重点在于服务器端如何组织 JSON 响应,以及客户端如何解析该响应并执行重定向。同时,强调了这种方法只会重定向到最后一个满足条件的 URL,适用于只需要最新重定向…

      2025年12月10日
      000
    • AJAX 表单提交后基于服务器响应的动态重定向实现指南

      本教程详细阐述了如何通过 jQuery AJAX 提交表单后,根据服务器端处理结果实现动态页面重定向。核心在于服务器端根据业务逻辑在 JSON 响应中包含一个重定向 URL,客户端 JavaScript 接收到该响应后解析并执行跳转,确保用户体验的连贯性与业务流程的准确性。 概述 在现代 web 应…

      2025年12月10日
      000
    • 使用 jQuery AJAX 实现指定 URL 的重定向

      本文旨在介绍如何在使用 jQuery AJAX 提交表单后,根据服务器返回的 JSON 数据中的 redirect 字段,实现页面重定向。核心思路是在服务器端根据特定条件设置唯一的重定向 URL,并通过 AJAX 将其返回给客户端,客户端 JavaScript 代码则根据该 URL 进行重定向。 前…

      2025年12月10日
      000
    • 使用 jQuery AJAX 实现特定条件下的页面重定向

      本文介绍了如何使用 jQuery AJAX 根据服务器返回的 JSON 数据中的特定条件,实现灵活的页面重定向。通过在服务器端构建条件判断,并返回包含重定向 URL 的 JSON 数据,前端 AJAX 可以根据这些条件动态地更新 window.location.href,从而实现页面跳转。文章提供详…

      2025年12月10日
      000
    • 高效处理数据库队列:实现条件式连续行处理策略

      本教程旨在解决数据库中按序处理数据时,如何实现条件式跳过并立即处理下一行的需求。通过引入 while 循环结构,结合条件判断和重试机制,确保脚本能够持续检查并处理满足特定标准的数据库记录,直至找到符合条件的行或达到预设的重试上限,从而避免不必要的等待,提高处理效率。 场景概述与问题背景 在许多自动化…

      2025年12月10日
      000
    • WooCommerce 产品配送预估:基于自定义分类和库存状态的动态显示教程

      本教程旨在指导您如何在 WooCommerce 单品页动态显示预计配送时间。通过集成自定义产品分类(如“立即有货”)和库存状态,我们将详细讲解如何编写代码,确保仅对符合特定条件的产品显示配送通知,并根据下单时间智能调整预计送达日期,从而显著提升用户体验和信息透明度。 引言:动态配送预估的重要性 在电…

      2025年12月10日
      000
    • PHP脚本优化:实现数据库记录的条件式顺序处理与即时跳过

      本文详细介绍了如何优化PHP脚本,以高效处理数据库中的队列数据。通过引入循环结构和条件判断,脚本能够即时跳过不符合特定条件的数据库记录,并立即处理下一条,从而避免了等待固定间隔时间(如20分钟)的低效模式,确保数据处理的连续性和及时性,同时提供了防止无限循环的健壮性机制。 优化数据库队列处理的挑战 …

      2025年12月10日
      000

    发表回复

    登录后才能评论
    关注微信