当前位置: 首页 > news >正文

TDengine 使用教程:从入门到实践

TDengine 是一款专为物联网(IoT)和大数据实时分析设计的时序数据库。它能够高效地处理海量的时序数据,并提供低延迟、高吞吐量的性能表现。在本文中,我们将带领大家从 TDengine 的安装、基本操作到一些高级功能,帮助你快速上手。


1. TDengine 简介

TDengine 是一个高效的时序数据存储解决方案,支持高并发写入和快速的实时分析。它适用于各种物联网应用场景,如传感器数据监控、日志数据处理等。TDengine 提供了类似 SQL 的查询语言,使得用户能够方便地进行数据查询和分析。

特点:

  • 高性能:支持海量数据的高效写入和读取。
  • 高可用性:提供数据备份和高可用性机制。
  • 实时性:能够实时处理和分析数据。

2. 安装 TDengine

2.1 安装前的准备

TDengine 支持多平台,包括 Linux、Windows 和 macOS。你可以通过官网下载并安装。

  • Linux 安装:支持 Ubuntu、CentOS 等发行版。
  • Windows 安装:通过官方提供的安装包进行安装。
  • macOS 安装:可以使用 Homebrew 进行安装。

2.2 在 Linux 上安装 TDengine

  1. 更新软件包列表并安装依赖:

    sudo apt-get update
    sudo apt-get install -y libaio1
    
  2. 下载 TDengine 安装包: 访问 TDengine 官网 TDengine 下载页面 获取最新版本,或者使用以下命令下载:

    wget https://cdn.taosdata.com/taos/taosd-2.0.0-ubuntu_amd64.deb
    
  3. 安装 TDengine:

    sudo dpkg -i taosd-2.0.0-ubuntu_amd64.deb
    
  4. 启动 TDengine 服务:

    sudo service taosd start
    

2.3 验证安装

运行以下命令验证安装是否成功:

taos -v

 如果返回版本信息,说明安装成功。


3. TDengine 基本操作

3.1 连接到 TDengine

你可以使用 taos 命令行工具连接到数据库。启动 taos 客户端:

taos

此时,你将进入 TDengine 的交互式命令行环境。

3.2 创建数据库

在 TDengine 中,创建数据库使用 CREATE DATABASE 命令。例如,创建一个名为 test_db 的数据库:

CREATE DATABASE test_db;

3.3 创建表

在 TDengine 中,创建表与 SQL 数据库相似,主要不同的是你需要指定一个时间戳列。以下是创建一个存储传感器数据的表的示例:

CREATE TABLE sensor_data (ts TIMESTAMP,        -- 时间戳temperature FLOAT,   -- 温度humidity FLOAT,      -- 湿度PRIMARY KEY (ts)
);

3.4 插入数据

使用 INSERT INTO 语句插入数据。TDengine 支持批量插入数据,下面是一个插入数据的例子:

INSERT INTO sensor_data (ts, temperature, humidity) VALUES ('2025-03-12 10:00:00', 22.5, 60.0);

3.5 查询数据

使用 SELECT 查询表中的数据。以下是查询所有数据的例子:

SELECT * FROM sensor_data;

你也可以对数据进行过滤或排序:

SELECT * FROM sensor_data WHERE temperature > 20 ORDER BY ts DESC LIMIT 10;

3.6 删除数据

如果你需要删除某些数据,可以使用 DELETE 语句:

DELETE FROM sensor_data WHERE ts < '2025-01-01 00:00:00';

4. 高级功能

4.1 数据分区

TDengine 支持通过时间范围进行数据分区,从而提高查询和写入效率。你可以使用以下语句进行数据分区:

CREATE TABLE sensor_data PARTITION BY RANGE (ts) (PARTITION p0 VALUES LESS THAN (to_timestamp('2025-01-01 00:00:00')),PARTITION p1 VALUES LESS THAN (to_timestamp('2025-06-01 00:00:00'))
);

4.2 数据压缩

TDengine 提供数据压缩功能来节省存储空间。你可以在创建表时选择压缩策略:

CREATE TABLE sensor_data (ts TIMESTAMP,temperature FLOAT,humidity FLOAT
) COMPRESS ZSTD;

4.3 聚合和窗口查询

TDengine 支持类似 SQL 的聚合函数,例如 SUMAVGCOUNT 等。你还可以进行窗口查询来进行实时分析:

SELECT AVG(temperature) FROM sensor_data WHERE ts > '2025-03-12 00:00:00' GROUP BY ts INTERVAL 1 HOUR;

5. 常见问题与解决方案

5.1 安装时出现依赖问题

如果在安装过程中遇到缺少依赖项的问题,可以尝试手动安装缺失的包。例如,缺少 libaio1 时,执行以下命令:

sudo apt-get install -y libaio1

5.2 查询性能问题

如果在查询时出现性能问题,建议你:

  • 使用分区表,提高查询效率。
  • 定期清理历史数据,减少数据量。
  • 配置合适的缓存和索引。

6. 总结

TDengine 是一款强大的时序数据库,特别适合需要处理海量时序数据的应用场景,如物联网、工业监控等。在本文中,我们介绍了 TDengine 的安装、基本操作和一些高级功能。希望你通过这篇教程能够快速上手,开始使用 TDengine 存储和分析时序数据。


希望这篇教程对你有所帮助!如果你有任何问题,或者想了解更多高级特性,欢迎留言讨论。

相关文章:

TDengine 使用教程:从入门到实践

TDengine 是一款专为物联网&#xff08;IoT&#xff09;和大数据实时分析设计的时序数据库。它能够高效地处理海量的时序数据&#xff0c;并提供低延迟、高吞吐量的性能表现。在本文中&#xff0c;我们将带领大家从 TDengine 的安装、基本操作到一些高级功能&#xff0c;帮助你…...

Python Web项目的服务器部署

一.部署运行 1.虚拟环境的安装&#xff1a;&#xff08;一行一行运行&#xff09; wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh bash miniconda.sh -b -p /opt/miniconda3 echo export PATH"/opt/miniconda3/bin:$PAT…...

linux - ubuntu 使用时一些小问题整理 --- 持续更新

目录 ubuntu 中 root用户默认不存在解决办法 在Ubuntu系统中&#xff0c;将用户添加到sudoers文件中&#xff0c;使其能够以超级用户权限执行命令&#xff0c;通常可以通过以下几种方法实现&#xff1a; 方法1&#xff1a;将用户添加到sudo组 方法2&#xff1a;直接编辑sud…...

道路运输安全员考试:备考中的心理调适与策略

备考道路运输安全员考试&#xff0c;心理调适同样重要。考试压力往往会影响考生的学习效率和考试发挥。​ 首先&#xff0c;要正确认识考试压力。适度的压力可以激发学习动力&#xff0c;但过度的压力则会适得其反。当感到压力过大时&#xff0c;要学会自我调节。可以通过运动…...

关于WPS的Excel点击单元格打开别的文档的两种方法的探究【为单元格添加超链接】

问题需求 目录和文件结构如下&#xff1a; E:\Dir_Level1 │ Level1.txt │ └─Dir_Level2│ Level2.txt│ master.xlsx│└─Dir_Level3Level3.txt现在要在master.xlsx点击单元格进而访问Level1.txt、Level2.txt、Level3.txt这些文件。 方法一&#xff1a;“单元格右键…...

深入理解Tomcat:Java Web服务器的安装与配置

大家好&#xff01;今天我们来聊聊Java Web开发中最重要的工具之一——Apache Tomcat。Tomcat是一个开源的Java Servlet容器和Web服务器&#xff0c;它是运行Java Web应用程序的核心环境。无论是开发、测试还是部署Java Web应用&#xff0c;Tomcat都是不可或缺的工具。本文将详…...

【从零开始学习计算机科学】编译原理(五)语法制导翻译

【从零开始学习计算机科学】编译原理(五)语法制导翻译 语法制导翻译语法制导定义SDDSDD的求值顺序两类重要的SDD语法制导的翻译方案SDTSDT的实现L属性定义的SDT左递归翻译方案语法制导翻译 语法表述的是语言的形式,或者说是语言的样子和结构。而程序设计语言中另一方面,是…...

Git使用(二)--如何配置 GitHub 远程仓库及本地 Git 环境

在日常的开发过程中&#xff0c;使用版本控制工具 Git 是一个非常重要的技能&#xff0c;特别是对于管理和协作开发。通过 GitHub&#xff0c;我们可以轻松地进行代码版本管理和共享。这篇博客将带您一步步学习如何配置 Git 环境并将本地仓库与 GitHub 远程仓库连接起来。 一、…...

【MySQL是怎么运行的】0、名词解释

聚簇索引&#xff1a;聚簇索引和数据在一起&#xff0c;又名主键索引&#xff0c;是主键id构建的一颗B树&#xff0c;非叶节点是主键id&#xff0c;叶子节点是真实数据。其他索引统称二级索引&#xff0c;也称为非聚簇索引。覆盖索引&#xff1a;查找的数据就在索引树上&#x…...

网络安全事件响应--应急响应(windows)

应用系统日志 Windows主要有以下三类日志记录系统事件&#xff1a;应用程序日志、系统日志和安全日志。 系统和应用程序日志存储着故障排除信息&#xff0c;对于系统管理员更为有用。安全日志记录着事件审计信息&#xff0c;包括用户验证&#xff08;登录、远程访问等&#x…...

使用 UNIX 命令在设计中搜索标识符:vcsfind 的入门指南

在现代软件开发和硬件设计中&#xff0c;快速准确地定位和搜索特定标识符是提高开发效率的关键。本文将介绍如何使用 UNIX 命令 vcsfind 在设计中搜索标识符&#xff0c;帮助您更高效地管理您的项目。 什么是 vcsfind&#xff1f; vcsfind 是一个强大的 UNIX 命令行工具&#x…...

Qt不同窗口类的控件信号和槽绑定

做项目的时候我使用了Qt&#xff0c;不同的界面使用了不同的ui的类进行解耦&#xff0c;但是信号和槽绑定的时候可能是不同界面的控件互相进行通讯连接&#xff0c;然而ui指针对于各个界面类是私有成员&#xff0c;无法直接跳过访问&#xff0c;在网上看了一些参考资料&#xf…...

【Godot4.2】Vector2向量插值的应用

求线段的等分点 extends Node2Dvar pos:Vector2 var split_num:int var p1 Vector2(200,200) var p2 Vector2(100,100)func _input(event: InputEvent) -> void:if event is InputEventMouseButton:if event.button_index MOUSE_BUTTON_WHEEL_DOWN:split_num clamp(spl…...

Java线程安全

Java线程安全实现方式及原理详解 一、线程安全的核心概念 线程安全指多线程环境下,程序能正确且一致地处理共享资源的状态,不会因线程调度顺序导致数据不一致或逻辑错误。例如多个线程同时修改共享变量时,需通过同步机制确保操作原子性。 二、主要实现方式及原理 synchro…...

电机控制常见面试问题(九)

文章目录 一、谈谈电机死区时间1.死区时间过短的后果&#xff1a;2.如何判断死区时间不足?3.解决方案 二、请描述对实时操作系统&#xff08;RTOS&#xff09;的理解三.解释FOC算法的原理并比较与其他无刷电机控制算法的优劣四.什么是电机堵转&#xff0c;如何避免电机堵转五.…...

Django与模板

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲视图 Django与模板文件工作流程 模板引擎&#xff1a;主要参与模板渲染的系统。 内容源&#xff1a;输入的数据流。比较常见的有数据库、XML文件和用户请求这样的网络数据。 模板&am…...

UFW 配置 Ubuntu 防火墙并设置防火墙规则

一、什么是 UFW&#xff1f; UFW&#xff0c;全称为 Uncomplicated Firewall&#xff0c;顾名思义&#xff0c;它是一种简单易用的防火墙管理工具。与传统的防火墙配置工具相比&#xff0c;UFW 以其简洁明了的命令行界面而闻名。虽然它主要为普通用户设计&#xff0c;但它也具…...

在Keil 5中如何建立一个STM32项目

大家在使用Keil时大多都是利用样板项目来建立自己的项目&#xff0c;为了了解基本建立项目的知识写下了本篇文章。 项目建立流程 1.建立项目文件夹并明确其作用 —— 2.下载HAL库 —— 3.拷贝相关文件到对应文件夹 —— 4.打开Keil 5新建项目 —— 5.将项目文件夹添加到项目 …...

Linux 系统负载过高的排查思路

技术探讨&#xff1a;Linux系统负载过高的排查思路 在Linux服务器运行过程中&#xff0c;如果系统负载过高&#xff0c;可能会导致性能下降和服务不稳定。以下是针对Linux系统负载过高问题的排查思路和解决方法&#xff1a; 1. 查看系统负载&#xff1a; 使用uptime或top命令查…...

kotlin高级用法总结

Kotlin 是一门功能强大且灵活的编程语言&#xff0c;除了基础语法外&#xff0c;它还提供了许多高级特性&#xff0c;可以帮助你编写更简洁、高效和可维护的代码。以下是 Kotlin 的一些高级用法&#xff0c;涵盖了协程、扩展函数、属性委托、内联类、反射等内容。 协程&#x…...

Windows Wise Care 365 PRO-中文便携版

Windows Wise Care 365 PRO 链接&#xff1a;https://pan.xunlei.com/s/VOL9UE-i-GLXYr-6KhdyghHOA1?pwdajqe# - 禁止后续强制升级提示弹窗&#xff0c;杜绝后台下载升级文件 - 禁止自动创建开机启动项、任务计划&#xff0c;删除相关选项 - 去右侧无用区域&#xff1a;用户…...

SpringBoot 自动配置原理

自动配置是Spring Boot的关键特性之一&#xff0c;它简化了传统Spring应用繁琐的配置&#xff0c;通过智能推断和条件化配置简化了Spring应用的开发。 1. 自动配置的核心思想 目标&#xff1a;根据项目的依赖&#xff08;如类路径中的 JAR 包&#xff09;和已有的配置&#xf…...

HTMLCSS绘制三角形

1.代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>01triangle</title><s…...

WorkTool 技术解析:企业微信自动化办公的合规实现方案

引言&#xff1a;企业微信生态中的自动化需求 随着企业微信用户规模突破4亿&#xff08;据腾讯2023年财报&#xff09;&#xff0c;其开放生态催生了自动化办公的技术需求。传统RPA&#xff08;机器人流程自动化&#xff09;工具在PC端已广泛应用&#xff0c;但移动端自动化仍…...

Linux机器之间排查网络连通问题

网络连通性排查步骤&#xff08;基于五层模型&#xff09; 以下按照网络五层架构&#xff0c;从底层到高层逐层排查&#xff0c;并分别列出Ubuntu和CentOS对应的命令。 1. 物理层 排查点&#xff1a;网线、网卡状态、物理连接。 命令&#xff08;通用&#xff09;&#xff1a…...

大数据学习(62)- Hadoop-yarn

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

Stable Diffusion/DALL-E 3图像生成优化策略

Stable Diffusion的最新版本或社区开发的插件&#xff0c;可以补充这些信息以保持内容的时效性。 云端源想 1. 硬件与部署优化&#xff08;进阶&#xff09; 显存压缩技术 使用--medvram或--lowvram启动参数&#xff08;Stable Diffusion WebUI&#xff09;&#xff0c;通过分…...

21 | 全面测试项目功能

提示&#xff1a; 所有体系课见专栏&#xff1a;Go 项目开发极速入门实战课&#xff1b;欢迎加入 云原生 AI 实战 星球&#xff0c;12 高质量体系课、20 高质量实战项目助你在 AI 时代建立技术竞争力&#xff08;聚焦于 Go、云原生、AI Infra&#xff09;&#xff1b;本节课最终…...

Debian系统grub新增启动项

参考链接 给grub添加自定义启动项_linux grub定制 启动项名称自定义-CSDN博客 www.cnblogs.com 1. boot里面的grub.cfg 使用vim打开boot里面的grub.cfg sudo vim /boot/grub/grub.cfg 这时候会看到文件最上方的提示 2. 真正配置grub的文件 从刚才看到的文件提示中&#x…...

C语言中的assert断言,你了解多少呢?

引言 ‘ 介绍了assert 是什么&#xff0c;以及assert的优缺点 一、什么assert是断言 assert.h 头文件定义了宏 assert() &#xff0c;用于在运行时确保程序符合指定条件&#xff0c;如果不符合&#xff0c;就报错终止运行。这个宏常常被称为“断言”。 int a 10;asse…...

设计模式之工厂模式

工厂模式属于创建型设计模式的一种&#xff0c;其实在我看来它更是在面向对象编程语言的抽象层的更加灵活的应用。工厂模式其实在创建型模式中难度较高&#xff0c;整体的理解上需要一定时间进行消化&#xff0c;在一些Java常见框架中&#xff0c;这种模式也是频繁出现的设计&a…...

详细学习 pandas 和 xlrd:从零开始

详细学习 pandas 和 xlrd&#xff1a;从零开始 前言 在数据处理和分析中&#xff0c;Excel 文件是最常见的数据格式之一。Python 提供了强大的库 pandas&#xff0c;可以轻松地处理 Excel 文件中的数据。同时&#xff0c;我们还可以使用 xlrd 来读取 Excel 文件&#xff0c;尤…...

BFS比DFS更好理解「翻转二叉树」

一周没发博客&#xff0c;算法好难&#xff01;一直在复习前面的&#xff0c;哈希表、链表、二叉树已经够我喝一壶了&#xff0c;不过我一定要啃下来&#xff0c;哪怕慢一点&#xff0c;也不能盲目的追求速度&#xff0c;勤于复习才能将知识变成自己的&#xff0c;复习比学习重…...

c++介绍运算符重载九

这段代码中我们可以看到同样是运算符&#xff0c;它的作用是不同的aa<<3;是c内置的移位运算符。 cout<<"hello world"中<<它的作用是插入运算符。将字符串传递给cout对象&#xff0c;从而将字符输出到终端上。这种功能是如何实现的&#xff1f;其…...

重生之我在学Vue--第9天 Vue 3 项目整合

重生之我在学Vue–第9天 Vue 3 项目整合 文章目录 重生之我在学Vue--第9天 Vue 3 项目整合前言一、架构升级&#xff1a;从散件到整机1.1 项目结构重构1.2 核心模块通信图 二、功能整合&#xff1a;CRUD全链路实现2.1 任务管理状态中枢2.2 路由守卫实现数据预取2.3 UI与业务逻辑…...

小程序酒店:如何实现智能预订与在线支付?

在移动互联网快速发展的今天,酒店行业面临着前所未有的机遇与挑战。用户需求日益多样化,市场竞争愈发激烈,传统酒店预订方式已经难以满足现代消费者的需求。而小程序作为一种轻量化、便捷化的移动应用形式,正在成为酒店行业数字化转型的重要工具。通过小程序开发,酒店可以…...

网络信息安全专业(710207)网络安全攻防实训室建设方案

一、引言 随着信息技术的飞速发展&#xff0c;网络空间安全已成为国家安全的重要组成部分&#xff0c;对网络信息安全专业人才的需求日益增长。为满足网络信息安全专业&#xff08;专业代码710207&#xff09;的教学需求&#xff0c;提升学生在网络安全攻防领域的实践能力&…...

npm、pnpm、cnpm、yarn、npx之间的区别

区别 特性npmyarnpnpmcnpmnpx核心定位Node.js 默认包管理增强稳定性与性能高效存储与严格隔离国内镜像加速工具临时执行包命令依赖存储方式扁平化 node_modules扁平化 lock 文件全局硬链接 符号链接同 npm不适用安装速度较慢较快&#xff08;并行下载&#xff09;最快&#…...

数学:从宇宙密码到人工智能的核心语言

——解析数学本质、历史演进与未来革命的3000年全景图 一、数学本质论&#xff1a;宇宙的元语言 1.1 数学实在论的拓扑诠释 根据丘成桐的卡拉比-丘流形理论&#xff0c;物理定律可表述为&#xff1a; M C Y ↪ C P n 满足 c 1 ( M ) 0 \mathcal{M}_{CY} \hookrightarrow \…...

Java中的加盐加密:提升密码存储安全性的关键实践

引言 在现代应用中&#xff0c;用户密码的安全性至关重要。单纯的哈希算法&#xff08;如MD5、SHA-1&#xff09;虽然可以隐藏原始密码&#xff0c;但面对彩虹表攻击和暴力破解时仍存在风险。加盐加密通过在哈希过程中引入随机数据&#xff08;称为“盐”&#xff09;&#xf…...

开启AI开发新时代——全解析Dify开源LLM应用开发平台

开启AI开发新时代——全解析Dify开源LLM应用开发平台 在人工智能迅速发展的今天&#xff0c;如何快速将创意转化为高效可用的应用成为开发者亟待解决的问题。Dify 作为一款开源的 LLM 应用开发平台&#xff0c;以其直观的界面和强大的功能组合&#xff08;包括 agentic AI 工作…...

数学建模:MATLAB强化学习

一、强化学习简述 强化学习是一种通过与环境交互&#xff0c;学习状态到行为的映射关系&#xff0c;以获得最大积累期望回报的方法。包含环境&#xff0c;动作和奖励三部分&#xff0c;本质是智能体通过与环境的交互&#xff0c;使得其作出的动作所得到的决策得到的总的奖励达…...

ELK traceId实现跨服务日志追踪

ELK怎么实现跨服务日志追踪&#xff0c;Trace-Id 具体实现方案及代码_kibana关联其他服务器的日志-CSDN博客 ELKMDC追踪日志 ---- SpringCloud实现传递_elk的mdc-CSDN博客 SpringBoot之HandlerInterceptor拦截器的使用 ——&#xff08;一&#xff09;-CSDN博客 在使用ELK&a…...

【开源项目-爬虫】Firecrawl

看到其他项目引用了这个项目 Firecrawl 用免费额度试了一下&#xff0c;这个项目和之前的 https://r.jina.ai/ 很像&#xff08;类似的还有 https://www.scrapingbee.com/&#xff1f;&#xff09;&#xff0c;将爬取到的网页转换为 markdown 格式&#xff0c;这样大语言模型用…...

波特率、比特率、传信率、传码率......

去年搞过一段时间的无线通信&#xff0c;当时我脑子里真的是一团乱麻&#xff0c;本身咱也不是学通信的&#xff0c;咱是学机械出身的&#xff0c;后面又搞电&#xff0c;反正对于通信这一块就不是很懂&#xff0c;后面也慢慢搞出来了一点小东西&#xff0c;但是对于一些细节还…...

用户模块——redis工具类

1. Redis工具类与基础配置 1.1 什么是Redis&#xff0c;为什么使用它&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的高性能键值对存储数据库&#xff0c;通常用于缓存数据、存储会话信息等场景。它的主要优点是速度快&#xff0c;支持多种数…...

Synology 部署的 WordPress 無法升級至最新版本時,可以透過以下改良版指南進行排查和解決。

當 Synology 部署的 WordPress 無法升級至最新版本時&#xff0c;可以透過以下改良版指南進行排查和解決。我對內容進行了補充和重新組織&#xff0c;希望能幫助你更高效地處理這類問題&#xff1a; 權限相關問題處理 檢查文件和目錄權限&#xff1a; 確保 WordPress 安裝目錄…...

012-Benchmark

Benchmark 以下是一篇关于Google Benchmark库的全面介绍及使用指南&#xff0c;包含完整C代码示例和核心功能覆盖&#xff1a; Google Benchmark&#xff1a;C 性能基准测试指南 一、库简介 Google Benchmark 是一个专为 C 设计的微基准测试库&#xff0c;用于精确测量代码片…...

百某田网任务脚本

自动化操作百田游戏的任务脚本,特别是用于完成每日任务和积分兑换的功能。 主要功能 任务管理: 脚本通过定时任务查询并执行每天的任务,自动完成任务并兑换积分。 每个任务通过调用do_list()和do_task()函数来查询和完成。 多账号支持: 支持多个账号的登录和管理,账号信息…...

使用纯CSS 实现 侧边栏 拖拽效果

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、效果实现原理二、代码演示三.简单解释下样式四 完整的DEMO总结 前言 有不少需求是要拖动改变侧边栏宽高的&#xff0c;以下就是在不适用js ,只使用css 的情…...