基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、SpringCloud、Layui、Echarts图表、Nodejs、爬虫、微信小程序、机器学习等设计与开发。主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、远程代码部署调试、代码讲解和理解代码逻辑思路。
🍅**获取项目下载方式**🍅
链接点击直达:下载链接感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
一、项目背景介绍:
心理小程序主要给心理医生和用户提供一个心理测试的平台,其中主要功能有用户进行测试,心理医生上传试卷,得到测试结果,贴吧交流,心理医生咨询等等
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
- Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
- smart:微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
全面开放申请后,主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。微信小程序、微信订阅号、微信服务号、微信企业号是并行的体系。
。
微信小程序是一种不用下载就能使用的应用,也是一项创新,经过将近两年的发展,已经构造了新的微信小程序开发环境和开发者生态。微信小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,已经有超过150万的开发者加入到了微信小程序的开发,与我们一起共同发力推动微信小程序的发展,微信小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿,微信小程序还在许多城市实现了支持地铁、公交服务。微信小程序发展带来更多的就业机会,2017年小程序带动就业104万人,社会效应不断提升。
三、系统功能模块介绍:
四、数据库设计:
1:‘贴吧评论表’(comments)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 贴吧编号 |
from_stu_id | bigint | NULL | 评论学生编号 |
content | text | NULL | 评论内容 |
to_stu_id | bigint | NULL | 回复人编号 |
parent_id | bigint | NULL | 父级评论编号 |
img_list | text | NULL | 图片列表 |
create_time | datetime | NULL | 评论时间 |
type | int | NULL | 类型 |
tea_id | bigint | NULL | 医生ID |
2:likes(likes)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_id | bigint | NULL | 用户ID |
common_id | bigint | NULL | 评论ID |
create_time | datetime | NULL | 创建时间 |
3:‘管理员表’(manage)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 管理员编号 |
user_name | varchar | NULL | 用户名 |
pass_word | varchar | NULL | 密码 |
photo_img | varchar | NULL | 图片 |
name | varchar | NULL | 名称 |
4:message(message)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 消息ID |
send_user_id | bigint | NULL | 发送用户ID |
accept_user_id | bigint | NULL | 发送用户ID |
create_time | datetime | NULL | 创建时间 |
5:message_info(message_info)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 消息详情ID |
info | text | NULL | 内容 |
message_id | bigint | NULL | 聊天ID |
position | varchar | NULL | 左边右边 |
send_user_id | bigint | NULL | 发送用户ID |
accept_user_id | bigint | NULL | 发送用户ID |
create_time | datetime | NULL | 创建时间 |
6:‘题目表’(questions)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 题目编号 |
title | text | NULL | 题目标题 |
option_a | varchar | NULL | 选项A |
option_b | varchar | NULL | 选项B |
option_c | varchar | NULL | 选项C |
option_d | varchar | NULL | 选项D |
grade_a | varchar | NULL | 答案A分数 |
grade_b | varchar | NULL | 答案B分数 |
teacher_id | bigint | NULL | 老师编号 |
create_time | datetime | NULL | 创建时间 |
grade_c | varchar | NULL | 答案C分数 |
grade_d | varchar | NULL | 答案D分数 |
7:‘建档信息’(records)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 档案编号 |
stu_id | bigint | NULL | 学生编号 |
test_id | bigint | NULL | 试卷编号 |
tea_id | bigint | NULL | 教师编号 |
grade | varchar | NULL | 考试分数 |
create_time | datetime | NULL | 创建时间 |
info | varchar | NULL | 对应结果 |
8:‘学生表’(student)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 学生编号 |
stu_name | varchar | NULL | 学生姓名 |
stu_age | int | NULL | 年龄 |
stu_sex | int | NULL | 性别[0:男,1:女] |
stu_phone | varchar | NULL | 联系方式 |
stu_address | varchar | NULL | 家庭住址 |
stu_class_num | varchar | NULL | 所属班级 |
stu_img | varchar | NULL | 照片 |
password | varchar | NULL | 登录密码 |
username | varchar | NULL | 登录用户名 |
9:‘老师’(teachers)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 教师编号 |
username | varchar | NULL | 账号 |
password | varchar | NULL | 密码 |
tea_name | varchar | NULL | 姓名 |
tea_age | int | NULL | 年龄 |
tea_sex | int | NULL | 性别 |
tea_info | text | NULL | 简介 |
tea_tel | varchar | NULL | 联系方式 |
tea_img | varchar | NULL | 头像 |
create_time | datetime | NULL | 创建时间 |
varchar | NULL | 邮箱 |
10:‘试卷管理’(test_paper)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 试卷编号 |
tea_id | bigint | NULL | 所属老师 |
title | varchar | NULL | 试卷标题 |
img | varchar | NULL | 封面图片 |
create_time | datetime | NULL | 创建时间 |
total_grade | varchar | NULL | 总分 |
info | varchar | NULL | 试卷简介 |
11:‘试卷题目’(test_questions)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
test_id | bigint | NULL | 所属试卷 |
question_id | bigint | NULL | 题目编号 |
tea_id | bigint | NULL | 老师编号 |
12:‘试卷规则管理’(test_rules)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 规则编号 |
test_id | bigint | NULL | 试卷编号 |
min_grade | int | NULL | 最低分数 |
max_grade | int | NULL | 最高分数 |
info | varchar | NULL | 对应结果 |
create_time | datetime | NULL | 创建时间 |
tea_id | bigint | NULL | 老师编号 |
五、功能模块:
-
医生&管理员登录:医生和管理员登录系统页面
-
医生首页:医生快捷菜单,包含试卷管理,试卷规则,个人信息等
-
在线咨询:心理医生和用户在线聊天
-
心理测试:用户进行心理测试
-
用户首页:试卷列表
-
贴吧:用户进行交流心得
-
管理员首页:管理员对医生用户进行管理
六、代码示例:
@PostMappingpublic ReturnMsg manageLogin(@RequestBody Map<String, String> param) {if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {return ReturnMsg.error("用户名或密码错误!");}ManageDTO manageDTO = new ManageDTO();manageDTO.setUserName(param.get("username"));manageDTO.setPassWord(param.get("password"));QueryWrapper<ManageDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);manageDTOQueryWrapper.last("limit 1");ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");Map<String, Object> map = new HashMap<>();return ReturnMsg.ok(adminDTOS);}@PostMapping("/tea")public ReturnMsg teacherLogin(@RequestBody Map<String, String> param) {if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {return ReturnMsg.error("用户名或密码错误!");}TeachersDTO manageDTO = new TeachersDTO();manageDTO.setUsername(param.get("username"));manageDTO.setPassword(param.get("password"));QueryWrapper<TeachersDTO> manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);manageDTOQueryWrapper.last("limit 1");TeachersDTO adminDTOS = teachersService.getOne(manageDTOQueryWrapper);if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");return ReturnMsg.ok(adminDTOS);}@GetMappingpublic ReturnMsg getUserInfo(@RequestParam("token") String token) {if (!userInfoMap.containsKey(token)) return ReturnMsg.error("尚未登录,请重新登录!");return ReturnMsg.ok(JSON.parse(userInfoMap.get(token)));}@GetMapping("/logout")public ReturnMsg logout(@RequestParam("token") String token) {userInfoMap.remove(token);return ReturnMsg.ok();}
七、项目总结:
通过对基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)的程序时,
我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,
程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,
借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)得以正常运行。
基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:
(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。
(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)中的相关网站更贴合。
(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,
同时对服务器上资源占用的比例进行降低。
基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。
基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接
相关文章:
基于JAVA+SpringBoot+uniapp的心理小程序(小程序版本)
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、SpringCloud、Layui、Echarts图表、Nodejs、爬…...
C语言 ——— 输入两个正整数,求出最小公倍数
目录 何为最小公倍数 题目要求 代码实现 方法一:暴力求解法(不推荐) 方法二:递乘试摸法(推荐) 何为最小公倍数 最小公倍数是指两个或者多个正整数(除了0以外)的最小的公共倍数…...
Langchain 对pdf,word,txt等不同文件的加载解析
项目中遇到各种数据资源想要加载近langchain构建本地知识ai系统,怎么加载对应的文件格式呢,一起研究下 引入Langchain from langchain.document_loaders import UnstructuredWordDocumentLoader,PyPDFium2Loader,DirectoryLoader,PyPDFLoader,TextLoad…...
BL201分布式I/O耦合器连接Profinet网络
钡铼技术的BL201分布式I/O耦合器是一个用于Profinet网络的设备,用于连接远程输入/输出(I/O)设备到控制系统,如可编程逻辑控制器(PLC),能够实现分布式的I/O连接和通信。 它支持标准Profinet IO …...
Pycharm 报错 Environment location directory is not empty 解
删除项目中ven文件夹(已存在的),然后再添加新的ven虚拟环境就可以了...
【Android】Intent基础用法及作用
文章目录 使用Intent在活动中穿梭组成显式Intent隐式Intent显式与隐式区别作用 活动间传递数据向下一个活动传递数据返回数据给上一个活动 使用Intent在活动中穿梭 Intent(意图)是一种重要的消息传递对象,用于在不同组件(如活动&…...
Web开发:ASP.NET CORE的后端小结(基础)
1.后端重定向到指定路由 public IActionResult Index(){return RedirectToAction("Index", "Main");//重定向>Main/Index} 【备注】如果在MainController的Index方法中return View();本质是 return View("Index"),返回和方法同名的…...
侧开知识点合集2
一、try .... catch.. AccessViolationException异常触发后,下列程序的输出结果为 static void Main(string[] args) { try { throw new AccessViolationException(); Console.WriteLine("error1"); } catch (Exception e) { Console.WriteLi…...
ARM/Linux嵌入式面经(十六):蔚来嵌入式一二三面面经
文章目录 static作用,局部static和全局static区别TCP三次握手Linux虚拟内存指针引用区别C++内存分区new/delete和malloc/free区别职业规划为什么选择蔚来介绍一下项目然后问我有没有内核级别开发经验,我说没有什么情况进入内核态一、主动式二、被动式三、其他方式注意事项示例…...
Apache BookKeeper 一致性协议解析
导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。Pulsar 存储层依托于 BookKeeper 组件,所以本文简单探讨一下 BookK…...
Solana的账户模型
Solana的账户模型与其他区块链平台(如以太坊)有所不同,其设计旨在提高性能和扩展性。以下是Solana账户模型的主要特点和工作原理: Solana账户模型概述 账户类型: 普通账户(User Accounts)&…...
iPython与Matplotlib:数据可视化的秘籍
iPython与Matplotlib:数据可视化的秘籍 前言 欢迎来到"iPython与Matplotlib:数据可视化的秘籍"教程!无论你是数据可视化新手还是希望提升技能的专业人士,这里都是你开始的地方。让我们开始这段数据可视化之旅吧&#…...
做一只勤劳的小蜜蜂
机缘 成为创作者的初心,对我而言,是一个融合了个人兴趣、职业成长以及对知识传播热爱的复杂而纯粹的情感交织。回顾这段旅程的起点,几个核心驱动力始终引领着我前行: 1、记录与反思:在职业生涯的早期,我遇…...
如何处理 PostgreSQL 中死锁的情况?
🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 如何处理 PostgreSQL 中死锁的情况?一、认识死锁二、死锁的症状三、死锁的检测四、预防死锁…...
新版本 idea 创建不了 spring boot 2 【没有jkd8选项】
创建新项目 将地址换成如下 https://start.aliyun.com/...
linux系统和windows系统如何同步时间,服务器时间变动怎么同步
一、Linux系统时间同步 1. 使用NTP(网络时间协议) NTP是最常用的Linux系统时间同步方式。NTP通过连接到外部时间服务器(如原子钟或GPS接收器)来获取高精度的时间信息,并校准本地系统时间。 步骤: 安装N…...
Mac M1安装配置Hadoop+Flink SQL环境
Flink 1.18.1 Hadoop 3.4.0 一、准备工作 系统:Mac M1 (MacOS Sonoma 14.3.1) JDK:jdk1.8.0_381 (注意:尽量一定要用JDK8,少用高版本) Scala:2.12 JDK安装在本机的/opt/jdk1.8.0_381.jdk/C…...
【所谓生活】马太效应
简介 马太效应又称马太定律或两级分化现象。该效应描述的是在社会生活中,强者因为优势而获得更多机会,而弱者因劣势而失去机会,最终导致强者愈强、弱者愈弱的现象。这一概念最早由美国社会学家罗伯特莫顿于1968年提出,其名字来源…...
品牌进行电商数据采集的流程
品牌在进行数据分析与渠道管控时,均离不开电商数据的有力支撑,故而数据采集的质量举足轻重。电商数据采集首先要确保准确率,其次要保障覆盖率,即页面上呈现的商品信息必须采集完整,否则难以得出精确的数据分析成果&…...
面试问题:React基本概念,和所遇到的CPU和IO问题
在官方文档里面可以看见React基本设计概念,React是用 JavaScrip构建快速响应的大型Web应用程序的首选方式,但是快速响应用一定的是依赖,CPU的性能和IO的约束。 首先CPU性能原因:大部分浏览器的刷新频率为60HZ,及16.6ms…...
FOG Project 文件名命令注入漏洞复现(CVE-2024-39914)
0x01 产品简介 FOG是一个开源的计算机镜像解决方案,旨在帮助管理员轻松地部署、维护和克隆大量计算机。FOG Project 提供了一套功能强大的工具,使用户能够快速部署操作系统、软件和配置设置到多台计算机上,从而节省时间和精力。该项目支持基于网络的 PXE 启动、镜像创建和还…...
JavaScript 表单
JavaScript 表单 JavaScript 是一种广泛应用于网页开发的编程语言,它能够让网页变得更加动态和交互式。在网页设计中,表单是一个重要的组成部分,它允许用户输入数据并将其提交到服务器。JavaScript 可以用来增强表单的功能,提供更好的用户体验。本文将详细介绍如何使用 Ja…...
python程序设定定时任务
在 Windows 系统上,您可以使用任务计划程序(Task Scheduler)来设置定时任务,执行 Python 文件。以下是具体步骤: 步骤 1:准备 Python 文件 假设有一个名为 script.py 的 Python 脚本。确保它可以在命令行中正确运行。 步骤2:找到Python可执行文件的位置 知道Python可…...
win10 查看 jks 的公钥
1.使用 keytool 导出jks文件的 crt 文件 先查询别名 keytool -list -keystore oauth2.jks -storepass [你的密钥库密码] 导出crt 文件 keytool -exportcert -alias oauth2 -keystore oauth2.jks -file 777.crt 2.查看公钥 打开PowerShell # 设置.crt文件的路径 $ce…...
蓝牙模块在智能体育设备中的创新应用
随着科技的飞速发展,智能体育设备已经成为现代体育训练和健身的重要组成部分。蓝牙模块作为智能体育设备中的核心技术之一,其创新应用不仅提升了设备的智能化水平,也为运动员和健身爱好者带来了前所未有的便利和体验。本文将探讨蓝牙模块在智…...
智能家居和智能家电有什么区别?
智能家居和智能家电在定义、涵盖范围、功能特点以及系统集成度等方面存在显著区别。 一、定义 智能家居:智能家居是指通过物联网技术、人工智能技术等先进技术,将家居设备与互联网连接起来,实现智能化控制和管理的一种新型生活方式。它不仅…...
SpringBoot3 + Vue3 学习 Day 1
springboot 基础 和 注册接口的开发 学习视频基础SpringBoot 概述快速启动配置文件基本使用① application.properties② application.yml (更好) yml 配置信息的书写和获取yml 配置信息书写与获取 1 - Valueyml 配置信息书写与获取 2 - ConfigurationPr…...
如何使用在线工具将手机相册中的图片转换为JPG格式
我们经常在手机相册中保存大量的图片,无论是家庭聚会的照片还是旅行的瞬间,每一幅图像都承载着珍贵的记忆。然而,有时候我们会遇到图片格式不兼容的问题,尤其是在需要将图片分享到特定平台或编辑时。 例如,某些社交平台…...
C#医学影像管理系统源码(VS2013)
目录 一、概述 二、系统功能 系统维护 工作站 三、功能介绍 影像采集 统计模块 专业阅片 采集诊断报告 报告管理 一、概述 医学影像存储与传输系统(PACS)是一种集成了影像存储、传输、管理和诊断功能的系统。它基于数字化成像技术、计算机技术和…...
Qt Creator 项目Console 项目踩坑日记
最近在做QT的项目,但是一直是带界面(QT Widgets)程序,前几天收到个需求,是要做个socket服务端的桌面程序,界面有没有都成,然后就想着接着用 QT Widgets 搞,结果辛辛苦苦把socket服…...
毕设DW做网站的过程/seo优化培训机构
文章目录ABCDEF小结我怕不是傻子吧!!! 分数好低呀QAQ 算了原本就是个蒟蒻。 A 这道题目的大意就是求1−n1-n1−n里面奇数的个数占1−n1-n1−n个数的多少 真SB的题目 #include<cstdio> using namespace std; int n; double a;…...
国内开源建站cms/网店培训骗局
第一章 1.GUN与GPL 2.在用Linux系统centos社区版 商业版Redhat(稳定) 3.网络配置的文件 /etc/sysconfig/network-scripts/ifcfg-ens334.VM三种网络配置方式 第二章(重点) 1.用户和用户组管理 用户的增删改查 useradd userde…...
服务器多少钱/seo网站推广建站服务商
一篇很好的讲解嵌入式linux启动的文章嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Linux内核调入内存之…...
搜索推广 外贸/天津seo诊断技术
vue3 watch及computed的使用案例 //可以多个watch 一起使用 () => state.selectTreeList,(val) => {const treeData = _.cloneDeep(val)// 所属行业为:保理(6640),且所属地区只有省份,没有城市区县// 去...
有了域名和主机怎么做网站/网上做广告怎么收费
2019独角兽企业重金招聘Python工程师标准>>> 前面两篇文章说了怎么样简单的使用commons-pool库,这里需要考虑一个问题就是在很多时候我们在池里的对象都是比较重型的并且大多数比较稀缺的资源,比如说数据库连接,这样如果一直把一些…...
滁州网站建设公司/seo多久可以学会
任何使用CSS已有一段时间的人都会知道绝对和相对定位的优点。 回顾一下: position: relative允许元素从其原始位置水平(使用left或right )或垂直位置(使用top或bottom )移动。 position: absolute允许使用left &#x…...