前端 CSS 样式书写与选择器 基础知识
1.CSS介绍
CSS是Cascading Style Sheet的缩写,中文意思为"层叠样式表",它是网页的装饰者,用来修饰各标签 排版(大小、边距、背景、位置等)、改变字体的样式(字体大小、字体颜色、对齐方式等)。
2.CSS书写位置
2.1 样式表特征
- 层叠性:多组不同的css样式可以共同作用于同一个元素
- 继承性:有些css样式会自动从父元素传给子元素 大部分文字样式属性都会被继承
- 优先级: 显示哪个样式,浏览器默认样式和继承下来的样式优先级最低
2.2 行内样式
借助了所有标签都有的属性style,为当前的元素添加样式声明。
<标签名 style="样式声明">
CSS样式声明: 由CSS属性和值组成
- CSS属性:希望给HTML标签设置的样式名字
- 值:使用值来控制某个属性显示的效果
style="css属性名:值;css属性名:值;"
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><!-- 书写位置:1.行内样式/内联样式:通过style属性直接写在标签中语法:<标签名 style="样式声明"> 样式声明:css属性和属性值组成--><p style="font-weight: bold;">学习前端</p><p style="color: red;">学习CSS</p></body>
</html>
运行结果:
2.3 内嵌样式
借助于style标签,在HTML文档中嵌入 CSS 样式代码,可以实现 CSS 样式与HTML标签之间的分离。同时需借助于CSS选择器到HTML中匹配元素并应用样式。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* css代码 */p{color: green;} div{font-size: 40px;}</style>
</head>
<body><!-- 2.内嵌样式/内部样式:通过style标签来写,style标签放在head标签中语法:<style>选择器{css属性名:值;css属性名2:值;}</style>选择器:选择元素(标签) --><p>学习前端</p><p>学习CSS</p><div>666</div></body>
</html>
运行结果:
2.4 外链样式表
创建外部样式表文件 后缀使用 .css ,在HTML文件中使用<link> 标签引入外部样式表
<!-- rel:引入文件资源类型 href:引入文件资源的路径 --><link rel="stylesheet" href="外部样式表的地址">
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./outpre.css"> </head>
<body><!-- 书写位置:3.外部样式:新建一个样式文件(后缀名为.css)引入样式文件:link标签(写在head标签中)rel:文件的类型href:css文件的路径(相对路径,和img标签中的相对路径同理)--><p>学习前端</p><p>学习CSS</p><div>666</div>
</body>
</html>
运行结果:
3.CSS简单选择器
3.1 标签选择器
一个完整的HTML文档由各式各样的标签组成,而标签选择器可以通过具体的标签名称来匹配文档内所有同名的标签。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p{color: aqua;}div{color: red;}</style>
</head>
<body><!-- css选择器:用了查找元素简单选择器:1.标签选择器:通过标签名找到某个元素 可以选中页面中的所有这个标签名的元素语法:标签名{属性:值} --><p>p标签</p><div>容器标签</div></body>
</html>
运行结果:
3.2 类选择器
类选择器可以根据标签的 class 属性,找到具体的HTML标签。类选择器的定义需要用到一个英文的句号‘.’,后面紧跟 class 属性的值。
命名规范:
- 类名应该反映元素的用途或内容,而不仅仅是样式。这有助于提高代码的可读性。
- 推荐使用连字符而不是驼峰命名法来分隔单词,因为连字符在HTML和CSS中更为普遍。
- 类名不应以数字开头。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.text-box {font-size: 20px; /* 设置字体大小 */}.text-red {color: red; /* 设置文本颜色为红色 */}.text-green {color: green; /* 设置文本颜色为绿色 */}</style></head>
<body>
<!-- css选择器:用了查找元素2.class选择器(类选择):通过类名找到具体某个标签语法:.类名{属性:值}类名可以不唯一(可以重复),允许不同的标签,使用相同的类名一个元素可以有多个类名,类名之间空格隔开--><div class="text-red">红色</div><div class="text-green">绿色</div><div class="text-box text-red">红色</div>
</body>
</html>
运行结果:
3.3 ID选择器
ID选择器用来找到HTML文档中具有指定ID属性的标签,ID选择器的定义需要用到井号#,后面紧跟ID 属性的值。ID选择器的使用方式和类选择器的使用方式是非常像,但是ID选择器的主要作用是结合js用 于确定页面上的唯一元素。单个标签不允许拥有多个id名,同页面中不存出现重复的id名(id重名会影响 js代码获取标签)。并不是主要用来设置css的。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#qq2{color: purple;font-size: 30px;}</style>
</head>
<body><!-- css选择器:用了查找元素3.id选择器:通过类名精准找到某个标签,主要用来结合js确定页面的唯一元素语法:.类名{语法:#id名{属性:值}id名具有唯一性(不能重复),会影响js获取代码--><div id="qq2">带有id的容器标签</div><div>容器标签</div>
</body>
</html>
3.4 通配符选择器
通配符选择器用星号*表示,它不匹配某个特定的HTML元素,而是匹配 HTML文档中的每个元素。我 们通常使用通用选择器来清除HTML元素中默认的内外边距。通配符选择器在开发中不会使用,一般我们页面的标签的样式不会长的都完全一样。在平常的练习去除 标签默认的 margin 和 padding 。
<style>* {margin: 0;padding: 0;}
</style>
4.复杂选择器
两个或两个以上的选择器配合使用
4.1 交集选择器
- 找到页面中既能被选择器1选中,又能被选择器2选中的标签,设置样式
- 交集选择器中的选择器之间是紧挨着的,没有东西分隔
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p.one{color: red;}</style>
</head>
<body><!-- 复杂选择器1.组合选择器(交集选择器):两个或者两个以上的选择器配合使用,两个选择器之间紧密相连语法:选择器1选择器2{}例如:p.one{}需求:只要学习两个字改变颜色,但是不添加任何东西注意:标签选择器和类选择器一起使用的时候,标签在前,类在后 --><p class="one">学习</p><div><span class="one">认真学习</span><p>认真学习前端</p></div>
</body>
</html>
运行结果:
4.2 后代选择器
在选择器1所找到标签的后代(后代包括:儿子、孙子、重孙子……)中,找到满足选择器2的标 签,设置样式
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#one p {color: orange;}
</head>
<body><!-- 2.后代选择器:选择所有后代,选择器之间空格隔开语法:选择器1 选择器2{属性:值;
}找到选择器1的所有后代(直接后代,间接后代),在这些后代中找到满足选择器2的标签 --><div id="one"><p>111</p><p>333<span>222</span></p><div><p>666</p></div><span>444</span></div><div id="two">555</div>
</body></html>
运行结果:
4.3 子代选择器
在选择器1所找到标签的子代(子代只包括:儿子)中,找到满足选择器2的标签,设置样式
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style> #one>p {color: green;} </style>
</head><body><!-- 3.子代选择器:选择所有直接后代,选择器之间>隔开语法:选择器1>选择器2{属性:值;
}找到选择器1的所有直接后代,在这些后代中找到满足选择器2的标签 --><div id="one"><p>111</p><p>333<span>222</span></p><div><p>666</p></div><span>444</span></div><div id="two">555</div></body></html>
运行结果:
222 虽然不属于子代,但由于继承性仍会变色
4.4 相邻兄弟选择器
相邻兄弟选择器用于匹配某个元素之后紧邻的另一个元素,这两个元素拥有同一个父级元素并且不 存在嵌套关系。相邻兄弟选择器的定义需要用到加号+,加号两边为相邻的两个元素,选择器会 匹配加号后面的元素
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style> .three+p {color: green;}.four+p {color: red;}</head>
<body><!-- 4.相邻兄弟选择器:匹配某个元素后面紧邻的元素,这两个元素拥有同一个父级并且不存在嵌套关系语法:选择器1+选择器2{属性:值;
} --><div id="one"><p class="three">111</p><p>222</p><p>555</p><p class="four">333</p><p>666<span>444</span></p></div></body></html>
运行结果:
4.6 通用兄弟选择器
通用兄弟选择器同样会匹配同一父级元素下的兄弟元素,但兄弟元素之间无需紧邻。定义通用兄弟 选择器需要用到波浪号~,波浪号两边为同一父级元素下的两个元素,选择器会匹配波浪号后面 的元素
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.two~p {color: blue;margin: 0;}</style>
</head>
<body><!-- 5.通用(所有)兄弟选择器:匹配某个元素后面的所有兄弟,兄弟不需要紧邻,这些元素拥有同一个父级并且不存在嵌套关系语法:选择器1~选择器2{属性:值;
} --><div id="one"><p>111</p><p class="two">222</p><div>333</div><p>444<span>555</span></p><span>666</span><p>777</p><div><p>888</p></div></div></body>
</html>
运行结果:
4.5 分组选择器
- 结构: 选择器1,选择器2 {css属性名:属性值;}
- 同时选择多组标签,设置相同的样式
- 并集选择器中的每组选择器之间通过 , 分隔
- 选择器中的每组选择器通常一行写一个,提高代码的可读性
<style>p,h1,h2,h3,div,span {padding: 0;margin: 0;}</style>
5.层叠性与优先级
层叠性:所谓的层叠即叠加的意思,表示样式可以一层一层的层叠覆盖。多个选择器给同一个标签设置 不同的样式,会共同作用在标签上。
优先级:如果同一个标签被多个选择器赋予了相同的属性且值不一样时,会按照选择器的优先级来决定 以哪个样式为准
- !important > 行内 > id选择器 > 类选择器 > 标签 > 继承
- 先比较级别,级别一样比较各级别选择器出现的次数
- 当两个选择器权重一样时,以最后出现的为准
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#red{color: red;}p{color: green !important;font-size: 20px ;}.blue{color: blue;}</style>
</head>
<body><!-- 选择器优先级:页面通过选择器查找元素时的速度来决定的,速度越快,优先级越高,以权重来表示各类选择器的权重大小:通配符:0标签:1类:10id:100行内:1000!important:10000选择器权重越大,优先级越高复杂选择器,选择器权重是所有选择器权重之和并集选择器以每个选择器单独的权重为准,不进行相加强制提升优先级 !important写在分号里面,和样式属性之间空格隔开!important > 行内 > id选择器 > 类选择器 > 标签 > 继承--><p id="red" class="blue" style="color: purple; font-size: 40px ;">我爱中国</p><div id="red" class="blue" style="color: purple; font-size: 20px;">I love china</div>
</body>
</html>
运行结果:
相关文章:
前端 CSS 样式书写与选择器 基础知识
1.CSS介绍 CSS是Cascading Style Sheet的缩写,中文意思为"层叠样式表",它是网页的装饰者,用来修饰各标签 排版(大小、边距、背景、位置等)、改变字体的样式(字体大小、字体颜色、对齐方式等)。 2.CSS书写位置 2.1 样式表特征 层…...
一小时学会Docker使用!
文章目录 前言一、安装ssh连接工具二、安装docker三、Docker常见命令四、docker-compose使用 前言 Docker: Docker简单来说就是简化环境配置的,我们配置环境只需要简单的docker pull,docker run即可,而删除环境也很容易ÿ…...
android studio开发aar插件,并用uniapp开发APP使用这个aar
android studio开发aar插件,并用uniapp开发APP使用这个aar 使用android studio打包aar和Unity导入aar详解...
操作系统实战——QEMU模拟器搭建【rCore 操作系统】
操作系统大作业——QEMU模拟器搭建rCore操作系统 按照本篇步骤走,帮你少走很多弯路!博主在自己做的过程中踩了很多坑,过程还是很痛苦的,走了很多弯路,现在都已经在文章中把坑填平了,把弯路修直了。 创作不易…...
web:InfiniteScroll 无限滚动
InfiniteScroll 无限滚动 分页加载 <div class"data-box" v-infinite-scroll"loadMore"> <li v-fori in dataList></li> </div>form: {current: 1,size: 10,}loadMore(){console.log(this.dataList.length, this.total ,8888)if…...
【Redis 进阶】哨兵模式
思维导图: 一、哨兵模式概述 (一)传统主从复制模式的局限性 在传统的Redis主从复制架构中,若主节点发生故障,运维人员需手动执行故障转移操作,将一个从节点提升为新主节点,并逐一通知所有客户…...
告别卡顿,图片查看界的“速度与激情”
嘿,小伙伴们!今天电脑天空给大家介绍一款超好用的图片查看神器——ImageGlass!这可不是普通的图片查看软件哦,它简直就是图片界的“全能王”。首先,它能打开的图片格式多到让你眼花缭乱,什么PNG、JPEG、GIF…...
02_线性模型(回归分类模型)
用于分类的线性模型 线性模型也广泛应用于分类问题,可以利用下面的公式进行预测: $ \widehat y w[0]*x[0]w[1]*x[1]…w[p]*x[p]b > 0$ 公式看起来与线性回归的公式非常相似,但没有返回特征的加权求和,而是为预测设置了阈值…...
力扣2094题解
记录: 2025.5.12 题目: 思路: 暴力遍历。 解题步骤: 1.统计数字出现次数:使用数组cnt来记录输入数组中每个数字的出现次数。 2.生成三位偶数:通过循环从100开始,每次递增2,生成…...
人物角色设定机制
模块一:角色塑造进阶技巧 将角色设定(Character Headcanon)提升至更高层次 当您通过Character Headcanon Generator生成基础设定后,可运用以下专业技巧深化角色塑造: 情感核心图谱分析法 解构角色情感驱动机制及其情境表现: 主…...
Python动态渲染页面抓取之Selenium使用指南
目录 一、Selenium技术架构解析 二、环境搭建与基础配置 1. 组件安装 2. 驱动配置 3. 基础操作模板 三、动态内容抓取核心策略 1. 智能等待机制 2. 交互行为模拟 3. 反爬应对方案 四、实战案例:电商评论抓取 五、性能优化与异常处理 2. 异常捕获 六、进…...
智能手表 MCU 任务调度图
智能手表 MCU 任务调度图 处理器平台:ARM Cortex-M33 系统架构:事件驱动 多任务 RTOS RTOS:FreeRTOS(或同类实时内核) 一、任务调度概览 任务名称优先级周期性功能描述App_MainTask中否主循环调度器,系统…...
【C++】cout的格式输出
目录 一、cout的格式输出1、控制宽度和填充2、控制数值格式3、控制整数格式4、控制对齐方式 个人主页<—请点击 C专栏<—请点击 一、cout的格式输出 printf函数在输出数据的时候,可以指定格式来输出,比如:指定宽度、指定小数点后的位…...
私域流量新阵地:掌握Telegram私域运营全方法
在流量获取成本不断上升的今天,越来越多企业和品牌开始将目光转向“私域流量”——一条可以长期沉淀用户、反复转化的可持续增长之路。而在全球化趋势下,Telegram作为一款以高自由度、强隐私性著称的即时通讯平台,正在成为私域运营的新阵地。…...
Python Day23 学习
继续SHAP图绘制的学习 1. SHAP特征重要性条形图 特征重要性条形图(Feature Importance Bar Plot)是 SHAP 提供的一种全局解释工具,用于展示模型中各个特征对预测结果的重要性。以下是详细解释: 图的含义 - 横轴:表示…...
《ATPL地面培训教材13:飞行原理》——第12章:飞行力学基础
翻译:Leweslyh;工具:Cursor & Cluade 3.7;过程稿 第12章:飞行力学基础 目录 引言直线水平稳定飞行尾翼和升降舵直线稳定爬升爬升角重量、高度和温度的影响带动力下降紧急下降滑翔滑翔下降率转弯非对称推力飞行最…...
数据中台整体建设方案规划设计方案,数据中台建设汇报方案(PPT)
中台建设背景 在数字化转型浪潮下,企业需通过客户需求精准化、营销策略智能化、管理体系数字化三大核心方向构建竞争优势。本项目以渠道数据整合为基础,围绕客户精准化运营、营销智能化决策、管理数字化赋能三大目标,打造支撑一线业务场景的数…...
嵌入式软件--stm32 DAY 6 USART串口通讯(下)
1.寄存器轮询_收发字符串 通过寄存器轮询方式实现了收发单个字节之后,我们趁热打铁,争上游,进阶到字符串。字符串就是多个字符。很明显可以循环收发单个字节实现。 然后就是接收字符串。如果接受单个字符的函数放在while里,它也可…...
Flask如何读取配置信息
目录 一、使用 app.config 读取配置 二、设置配置的几种方式 1. 直接设置 2. 从 Python 文件加载 3. 从环境变量加载 4. 从字典加载 5. 从 .env 文件加载(推荐开发环境用) 三、读取配置值 四、最佳实践建议 在 Flask 中读取配置信息有几种常见方…...
AWS EC2源代码安装valkey命令行客户端
sudo yum -y install openssl-devel gcc wget https://github.com/valkey-io/valkey/archive/refs/tags/8.1.1.tar.gz tar xvzf 8.1.1.tar.gz cd valkey-8.1.1/ make distclean make valkey-cli BUILD_TLSyes参考 Connecting to nodes...
项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
目录 思维导图 前置知识 Docker是什么? Docker的核心概念: Docker在本项目中的作用 1. 环境隔离与一致性 2. 简化部署流程 3. 资源管理与扩展性 4. 服务整合与通信 5. 版本控制和回滚 6. 开发与生产环境一致性 总结 前端 1.小程序 2.web …...
如何快速入门大模型?
学习大模型的流程是什么 ? 提示词工程:只需掌握提问技巧即可使用大模型,通过优化提问方式获得更精准的模型输出套壳应用开发:在大模型生态上开发业务层产品(如AI主播、AI小助手等),只需调用API…...
《Flutter社交应用暗黑奥秘:模式适配与色彩的艺术》
暗黑模式已从一种新奇的功能演变为用户体验中不可或缺的一环。对于Flutter开发者而言,如何在社交应用中完美实现暗黑模式适配与色彩对比度优化,是一场充满挑战与惊喜的技术探索之旅。 暗黑模式,绝非仅仅是将界面颜色反转这么简单。从用户体验…...
【秣厉科技】LabVIEW工具包——OpenCV 教程(21):CUDA 加速方案
文章目录 前言一、方案总述二、改造步骤三、编程范例四、应用移植总结 前言 需要下载安装OpenCV工具包的朋友,请前往 此处 ;系统要求:Windows系统,LabVIEW>2018,兼容32位和64位。 一、方案总述 为了保持轻量化与普…...
flutter使用命令生成BinarySize分析图
flutter build ios --analyze-size 生成的文件,使用dev tools 可以分析具体的包大小...
高并发场景下的BI架构设计:衡石分布式查询引擎与缓存分级策略
在电商大促、金融交易时段或IoT实时监控场景中,企业BI系统常面临瞬时万级并发查询的冲击——运营团队需要实时追踪GMV波动,风控部门需秒级响应欺诈检测,产线监控需毫秒级反馈设备状态。传统单体架构的BI系统在此类场景下极易崩溃,…...
web 自动化之 selenium 下拉鼠标键盘文件上传
文章目录 一、下拉框操作二、键盘操作三、鼠标操作四、日期控件五、滚动条操作六、文件上传七、定位windows窗口及窗口的元素总结:页面及元素常用操作 一、下拉框操作 from selenium.webdriver.support.select import Select import time from selenium.webdriver.…...
Qt Creator 配置 Android 编译环境
Qt Creator 配置 Android 编译环境 环境配置流程下载JDK修改Qt Creator默认android配置文件修改sdk_definitions.json配置修改的内容 Qt Creator配置异常处理删除提示占用编译报错 环境 Qt Creator 版本 qtcreator-16.0.1Win10 嗯, Qt这个开发环境有点难折腾,搞了我三天… 配…...
主流编程语言中ORM工具全解析
在不同编程语言中,ORM(Object-Relational Mapping,对象关系映射)工具的设计目标都是简化数据库操作。 以下是主流语言中最常用的 ORM 工具,按语言分类介绍其特点、适用场景和典型案例。 一、Python 生态 Python 社区…...
详解RabbitMQ工作模式之发布确认模式
目录 发布确认模式 概述 消息丢失问题 发布确认的三种模式 实现步骤 应用场景 代码案例 引入依赖 常量类 单条确认 运行代码 批量确认 运行代码 异步确认 运行代码 对比批量确认和异步确认模式 发布确认模式 概述 发布确认模式用于确保消息已…...
Power BI 实操案例,将度量值转化为切片器(动态切换分析指标)
Power BI 实操案例,将度量值转化为切片器(动态切换分析指标) 想要在Power BI中让度量值也能像维度一样灵活筛选?没问题,这里就为你揭秘如何将度量值转化为切片器(动态切换分析指标)的实用方法&…...
利用散点图探索宇航员特征与太空任务之间的关系
利用散点图探索宇航员特征与太空任务之间的关系 import matplotlib.pyplot as plt import numpy as np import pandas as pdfrom flexitext import flexitext from matplotlib.patches import FancyArrowPatchplt.rcParams.update({"font.family": "Corbel&quo…...
人工智能的哲学与社会影响
人工智能(AI)的快速发展对人类社会的方方面面产生了深远的影响。在这部分中,我们将探讨AI对人与机器关系的影响、AI对就业和经济的潜在影响,以及人类与AI共存的可能性和道德议题。同时,我们还将针对大众对AI的一些常见…...
MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例
概述 以下是 MySQL 中 UPDATE 结合 SELECT 和 UPDATE CASE WHEN 的示例: 一、UPDATE 结合 SELECT(跨表更新) 场景:根据 orders 表中的订单总金额,更新 users 表中用户的 total_spent 字段。 -- 创建测试表 CREATE T…...
FPGA前瞻篇-计数器设计与实现实例
这是本篇文章的设计目标如下所示: 这个 Counter 模块是一个LED 闪烁计数器,设计目标是: 当输入时钟 clk 为 50 MHz 时,每 0.5 秒翻转一次 LED 灯状态。 随后我们开始补充理论知识。 计数是一种最简单基本的运算,计数器…...
运行Spark程序-在Idea中(二)
(四)使用Maven创建新项目 核心的操作步骤如下: 1.启动idea,选择新建项目。 2.将Scala添加到全局库中。 3.设置maven依赖项。修改pom.xml文件,添加如下: 4.下载依赖。添加完成之后,刷新Maven,它…...
Mosaic数据增强技术
Mosaic 数据增强技术是一种在计算机视觉领域广泛应用的数据增强方法。下面是Mosaic 数据增强技术原理的详细介绍 一、原理 Mosaic 数据增强是将多张图像(通常是 4 张)按照一定的规则拼接在一起,形成一张新的图像。在拼接过程中,会…...
Kafka、RabbitMQ 和 RocketMQ区别及上手难度
Kafka、RabbitMQ 和 RocketMQ 是三种流行的消息中间件,它们在设计理念、使用场景和上手难度上有显著差异。以下是它们的核心区别和上手难度分析: 1. 核心区别 特性KafkaRabbitMQRocketMQ设计目标高吞吐、分布式日志流处理通用的消息队列,强调…...
.NET 8 + Angular WebSocket 高并发性能优化
.NET 8 Angular WebSocket 高并发性能优化。 .NET 8 WebSocket 高并发性能优化 WebSocket 是一种全双工通信协议,允许客户端和服务端之间保持持久连接。在高并发场景下,优化 WebSocket 的性能至关重要。以下是针对 .NET 8 中 WebSocket 高并发性能优化…...
SimScape物理建模实例1--单质量-弹簧-阻尼系统
实例1模型下载: 【免费】simscape单质量弹簧阻尼模型资源-CSDN文库 如下图所示单质量弹簧阻尼系统,弹簧具有初始压缩量,假设为1m, 质量块除了受到自身重力作用以外,受到弹簧拉力,以及阻尼器阻尼力,根据牛顿…...
5.5.1 WPF中的动画2-基于路径的动画
何为动画?一般只会动。但所谓会动,还不仅包括位置移动,还包括角度旋转,颜色变化,透明度增减。动画本质上是一个时间段内某个属性值(位置、颜色等)的变化。因为属性有很多数据类型,它们变化也需要多种动画类比如: BooleanAnimationBase\ ByteAnimationBase\DoubleAnima…...
JVM对象分配与程序崩溃排查
一、new 对象在 JVM 中的过程 在 JVM 中通过 new 关键字创建对象时,会经历以下步骤: 内存分配 对象的内存分配在 堆(Heap) 中,优先在 新生代(Young Generation) 的 Eden 区 分配。分配方式取决…...
基于RT-Thread驱动EEPROM_AD24C02
基于RT-Thread驱动EEPROM_AD24C02 前言一、硬件设计二、软件设计三、测试1、eeprom_test()测试2、基础操作字节实验3、多字节读写 前言 存储容量2048位,内部组织256x8(2K),即256个字节的存储单元ÿ…...
VUE中通过DOM导出PDF
最终效果 前端导出PDF的核心在于样式的绘制上,这里其实直接使用CSS进行绘制和布局就行,只不过需要计算好每页DIV盒子的大小,防止一页放不下造成样式错乱。 项目依赖 项目是Vue3 TS npm i html2canvas1.4.1 npm i jspdf3.0.1工具类(htmlToPdf…...
sql语句面经手撕(定制整理版)
一张表 店铺id 商品id 销售数量 问:查询总销售数量最多的店铺 SELECT shop_id,SUM(quantity) AS total_quantity FROM sales GROUP BY shop_id ORDER BY total_quantity DESC LIMIT 1; 学生总分名最高的 SELECT student_id,SUM(score) AS total_score FROM score…...
pdf 不是扫描件,但却无法搜索关键词【问题尝试解决未果记录】
一、不是扫描件但不能搜索的原因 1. 情况一:文字被转成了“图形文字” 有些PDF文件虽然看起来像是文字,其实是图片或者矢量图格式,不能直接搜索。 2. 情况二:PDF被加密 有些PDF设置了“内容复制/提取”权限受限,即使…...
android14优化ntp时间同步
简介 网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议,用来使客户端和服务器之间进行时钟同步,提供高精准度的时间校正。 当机器的ntp时间同步出现问题时,可以从ntp配置方面进行优化&…...
【Ansible】之inventory主机清单
前言 本篇博客主要解释Ansible主机清单的相关配置知识 一、inventory 主机清单 Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。 如果是名称类似的主机,可以使用列表的方式表示各个主机…...
QT5.14安装以及新建基础项目
进入qt中文网站:Qt | 软件开发全周期的各阶段工具 额,考虑新手可能还是找不到,我就分享一下我下载的的吧 通过网盘分享的文件:qt-opensource-windows-x86-5.14.2.exe 链接:https://pan.baidu.com/s/1yQTRp-b_ISje5B3UWb7Apw?pw…...
Git 用法总结
换到新项目组后,没有好好使用git 。有点疲劳了。 不过还是建议能提尽提。少提 多提。与己方便。与人方便 1,拉取最新分支后。先不要直接改代码,可以根据修改需求。创建本地分支 git checkout -b feature/wlan 。 然后你改代码。改了后。合…...