深入理解CSS显示模式与盒子模型
一、CSS显示模式:元素的“性格”决定布局
1. 显示模式基础
CSS显示模式(display
属性)决定了元素在页面中的排列方式和尺寸表现。常见的显示模式有三大类型:
2. 块级元素(Block)
- 特点:独占一行,可设置宽高,默认宽度撑满父容器
- 常见标签: iv、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer
- 使用场景:构建页面结构、容器元素
3. 行内元素(Inline)
- 特点:水平排列(一行可以排列多个),不可设置宽高,内容决定宽度
- 常见标签:a、span 、b、u、i、s、strong、ins、em、del
- 注意事项:设置
margin/padding
时垂直方向无效,由于不可以设置宽高,所以这种显示模式我们使用的很少,实际应用中,我们通常会吧行内元素转换为其他的显示模式
4. 行内块元素(Inline-block)
- 混合特性:水平排列(一行可以排列多个),可设置宽高
- 典型应用:导航按钮、图标排列
- 常见标签:img,input、textarea、button、select
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>显示模式</title><style>div{width: 100px;height: 100px;}.div1{background-color: red;}div{background-color:blue;}span{/* 行内元素设置宽高不会生效 */width: 100px;height: 100px;background-color: yellow;}img{width: 100px;}</style>
</head>
<body><!-- 块级元素1.独占⼀⾏(⼀⾏只能显示⼀个) 2. 宽度默认是⽗元素的宽度,⾼度默认由内容撑开3. 可以设置宽⾼ --><div class="div1">div 标签1</div><div class="div2">div 标签2</div> <!-- 行内元素 1. ⼀⾏可以显示多个2. 宽度和⾼度默认由内容撑开3. 不可以设置宽⾼--><span>1、span是行内元素</span><span>2、span是行内元素</span><!-- 行内块元素1. ⼀⾏可以显示多个2. 可以设置宽⾼ --><img src="./images/haimian-baby.jpg" alt=""><img src="./images/haimian-baby.jpg" alt="">
</body>
</html>
运行结果:
5. 显示模式切换
讲到这里可能有很多小伙伴会想到,如果我们我们有几个div盒子硬是需要我们在一行排列,或者有几个超链接a标签需要设置对应的宽度和高度,那么我们怎么解决这个问题呢?这个时候就需要使用到我们的显示模式的切换了,这里的要注意的是,三种显示模式之间都可以通过display这个属性进行切换,
block | 转换为块级元素 |
inline | 转换为行内元素 |
inline-block | 转换为行内块元素 |
实例代码:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>转换显示模式</title><style>div{width: 100px;height: 100px;/* 行内块元素 */display: inline-block;/* 行内元素工作中不常用,不能设置宽高 *//* display: inline; */}.div1{background-color: red;}div{background-color:blue;}span{width: 100px;height: 100px;background-color: yellow;/* 块级元素 */display: block;/* 行内块元素 *//* display: inline-block; */}img{width: 100px;/* 行内元素 */display: inline;}</style>
</head>
<body><!-- 块级元素1.独占⼀⾏(⼀⾏只能显示⼀个) 2. 宽度默认是⽗元素的宽度,⾼度默认由内容撑开3. 可以设置宽⾼ --><div class="div1">div 标签1</div><div class="div2">div 标签2</div> <!-- 行内元素 1. ⼀⾏可以显示多个2. 宽度和⾼度默认由内容撑开3. 不可以设置宽⾼--><span>发hiUI四u</span><span>地方瑟瑟发抖</span><!-- 行内块元素1. ⼀⾏可以显示多个2. 可以设置宽⾼ --><img src="./images/haimian-baby.jpg" alt=""><img src="./images/haimian-baby.jpg" alt="">
</body>
</html>
运行结果:
6.综合案例
案例一:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例1</title><style>a{display:block;width: 200px;height: 80px;line-height: 80px;text-align: center;background-color: #3064bb;text-decoration: none;color:white;font-style: 18px;}</style>
</head>
<body><a href="">HTML</a><a href="">CSS</a><a href="">JavaScript</a><a href="">Vue</a><a href="">React</a>
</body>
</html>
运行结果:
案例二:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>综合案例2</title><style>.banner{height: 300px;background-color: #f3f3f4;background-image: url(./bijiimges/img3.png);background-repeat: no-repeat;background-position: left bottom;text-align: right;color: #333;}.banner h2{font-size: 36px;font-weight: 400;line-height: 100px;}.banner p{font-size: 20px;}.banner a{display: inline-block;width: 125px;height: 40px;background-color: #f06b1f;text-align: center;/* 垂直居中 设置与标签的高度一致 */line-height: 40px;color: #fff;font-size: 20px;text-decoration: none;}</style>
</head>
<body><div class="banner"><h2>让创造产生价值</h2><p>让创造产生价值让创造产生价值让创造产生价值让创造产生价值让创造产生价值!</p><a href="">我要报名</a></div>
</body>
</html>
运行结果:
二、盒子模型:构建布局的核心机制
1.盒子模型的组成
盒子模型的重要组成部分:
-内容区域(content):width&height
-边框线(border):盒子的边框线
-内边距(pading):出现在内容和盒子边缘之间
-外边距(margin):出现在盒子外面
2. 核心组成部分
-
边框(Border)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>30-盒子模型-边框线</title><style>.one{width: 200px;height: 200px;background-color: aquamarine;/* dashed是虚线边框 */border: 1px dashed #000;}.two{width: 200px;height: 200px;background-color:saddlebrown;/* dotted是点线边框 */border: 2px dotted #000;}.three{width: 200px;height: 200px;background-color: darkblue;/* solidshing是实线边框 */border: 3px solid #000;}/* 设置单个方向的边框线 */.four{width: 200px;height: 200px;background-color: hotpink;border-top: 1px solid red;border-bottom: 2px dotted #000;border-left: 3px dashed #31959e;border-right: 4px solid #54c82a;}</style>
</head>
<body><div class="one">我是div标签1,用来测试盒子模型的边框线</div><div class="two">我是div标签2,用来测试盒子模型的边框线</div><div class="three">我是div标签3,用来测试盒子模型的边框线</div><!-- 设置单个方向的边框线 --><div class="four">我是div标签4,用来测试盒子模型的边框线</div>
</body>
</html>
-
内边距(Padding)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>31-盒子模型-内边距</title><style>div{width: 200px;height: 200px;background-color: aquamarine;/* 1、统一设置上下左右的内边距 */padding: 20px;/* 2、单独设置上下内边距 *//* padding-top: 10px;padding-right: 20px;padding-bottom: 30px;padding-left: 40px; *//* 3、复合写法 *//* 四值: 上 右 下 左 *//* padding: 20px 30px 40px 50px; *//* 三值: 上 左右 下 *//* padding: 20px 30px 40px; *//* 两值: 上下 左右 *//* padding: 10px 20px ; *//* 顺时针旋转,那个方位没数那么就看对面*/}</style>
</head>
<body><div>31-盒子模型-内边距</div>
</body>
</html>
注意事项:
我们发现刚刚代码中代码虽然设置的宽和高都为200px,但实际的值却是宽和高241.33px
1、盒子模型的尺寸计算:
盒子尺寸=内容尺寸+border尺寸+内边距尺寸
结论:盒子加border和pading会撑大盒子
2、盒子模型内边距和边框线撑大盒子问题以及解决方法:
-手动做减法,减掉border和pading的尺寸
-内减模式:box-sizing:border-box
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>32-盒子模型-尺寸计算</title><style>/* 全局设置内减模式 *//* *{box-sizing: border-box;} */.one{/* 手动减法 *//* width: 200px; *//* height: 200px; */width: 160px;height: 160px;background-color: aquamarine;padding: 20px;border: 20px;}.two{width: 200px;height: 200px;background-color: #762222;padding: 20px;border: 20px;box-sizing: border-box;}</style>
</head>
<body><div class="one">我是盒子标签1</div><div class="two">我是盒子标签2</div>
</body>
</html>
-
外边距(magin)
1.怎么设置内容版心居中
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>33-盒子模型-外边距</title><style>div{/* 外边距不会撑大盒子 */height: 200px;width: 200px;background-color: aqua;/* (1)统一设置所有方向的外边距: *//* margin: 100px; *//* (2)分别设置四个方向的外边距: *//* margin-bottom: 10px;margin-top: 20px;margin-left: 30px;margin-right: 40px; *//* (3)单独设置某个方向的外边距 *//* 四值:上 右 下 左 *//* margin:10px 20px 30px 40px; *//* 三值:上 左右 下 *//* margin: 10px 20px 30px ; *//* 两值:上下 左右 *//* margin: 10px 20px; *//* 顺时针旋转,那个位置没数那么就看对面 *//* (4)版心居中:要求:盒子要有宽度*/margin: 0 auto;}</style>
</head>
<body><div> 我是div盒子</div>
</body>
</html>
2.元素溢出
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>35-盒子模型-元素溢出</title><style>div{width: 300px;height: 200px;background-color: #30e283;/* 隐藏溢出内容 *//* overflow: hidden; *//* 溢出滚动(无论是否溢出,都显示会滚动条位置) *//* overflow:scroll; *//* auto:溢出滚动(溢出才显示滚动条位置)----重要 */overflow: auto;}</style>
</head>
<body><div><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p><p>元素溢出</p></div>
</body>
</html>
3.合并和塌陷问题
1. 合并:垂直排列的兄弟元素,上下margin会合并,取两个margin中的较大值生效
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>36-外边距问题-合并和塌陷</title><style>/* 合并问题:较大值 */.one{height: 200px;width: 200px;background-color: rgb(186, 225, 14);margin-bottom: 20px;}.two{height: 200px;width: 200px;background-color: rgb(5, 255, 172);margin-top: 30px;}</style>
</head>
<body><div class="one">我是标签1</div><div class="two">我是标签2</div>
</body>
</html>
2. 塌陷:父子级的标签,子级的添加上外边距会产生塌陷问题,导致父级一起向下移动
- 解决方法:取消自己margin,父级设置padding-----推荐设置使用;父级设置overflow:hidden;父级设置border - top
现象展示:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>36-外边距问题-合并和塌陷</title><style>/* 塌陷问题 */.father{width: 400px;height: 400px;background-color: #18a40d;}.son{height: 200px;width: 200px;background-color: rgb(255, 0, 0);margin-top: 200px;}</style>
</head>
<body><div class="father"><div class="son">我是标签3</div></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>36-外边距问题-合并和塌陷</title><style>/* 塌陷问题 */.father{width: 400px;height: 400px;background-color: #18a40d;/* 1、取消自己margin-top 给父级设置padding-top *//* padding-top: 50px; *//* box-sizing: border-box; *//* 2和3都是为了让浏览器找到盒子的正确边缘 *//* 2、父级设置overflow:hidden */overflow: hidden;/* 3、父级设置border-top *//* border-top: 1px solid #000; */}.son{height: 200px;width: 200px;background-color: rgb(255, 0, 0);margin-top: 200px;}</style>
</head>
<body><div class="father"><div class="son">我是标签3</div></div>
</body>
</html>
3. 高级样式
-
圆角效果---border-radius
1. border - radius:数字+px + 百分比(圆角半径)
2. 正圆:直接设置50%(前提要正方形盒子),百分比的最大取值为50%,超过百分之五十仍然是一个圆
3. 胶囊形:设置圆角为高的一半
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>盒子属性-圆角</title><style>div{margin:100px auto;width: 200px;height: 200px;background-color: red;/* 一次给四个角设置圆角 *//* border-radius: 5px; *//* 单独给四个角单独设置圆角 *//* 顺时针旋转:对角相同 */border-radius: 5px 10px 20px 20px;border-radius: 20px 50px;border-radius: 5px 50px 80px;}</style>
</head>
<body><div>我是div盒子</div>
</body>
</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>.circle{width: 200px;height: 200px;border-radius: 50%;background-color: red;}/* 圆角设置为高的一半 */.jiaonang{width: 400px;height: 200px;border-radius: 100px;background-color: blue;}</style>
</head>
<body><div class="circle"></div><div class="jiaonang"></div>
</body>
</html>
-
盒子阴影---box-shadow
1. 属性名:box - shadow 2. 属性:x轴偏移量 y轴偏移量 模糊半径 扩散半径 颜色 内外阴影 3. 注意:x轴偏移量 y轴偏移量 必须书写;盒子默认是外阴影,内阴影需要添加insert |
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>盒子模型-阴影</title><style>div{width: 200px;height: 200px;background-color: red;/* box-shadow: 10px 10px 10px 10px rgb(0, 0, 0); *//* box-shadow: 10px 10px 10px 10px rgb(0, 0, 0) inset; */box-shadow: 10px 10px 10px 10px rgb(49, 49, 62)}</style>
</head>
<body><div></div>
</body>
</html>
4.综合案例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>产品卡片</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{background-color: #f1f1f1;}.product{margin: 100px auto;width: 270px;height: 253px;background-color: #fff;text-align: center;padding-top: 40px;border-radius: 10px;}img{width: 80px;border-radius: 50%;}.product>h4{margin-top: 20px;margin-bottom: 12px;font-style: 18px;color: #333;font-weight: 400;}.product p{font-size: 12px;color: #555;}</style></head>
<body><div class="product"><!-- 图片不能设置圆角 --><img src="./bijiimges/douyin.jpg" alt=""><h4>抖音直播SDK</h4><p>包含抖音直播看播功能</p></div>
</body>
</html>
总结:
显示模式总结:
显示模式 | 特点 | 代表标签 | 转换方式 |
---|---|---|---|
块级元素 | 1. 独占一行(一行只能显示一个) 2. 宽度默认是父元素的宽度,高度默认由内容撑开 3. 可以设置宽高 | div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer等 | display:block |
行内元素 | 1. 一行可以显示多个 2. 宽度和高度默认由内容撑开 3. 不可以设置宽高 | a、span、b、u、i、s、strong、ins、em、del等 | display:inline |
行内块元素 | 1. 一行可以显示多个 2. 可以设置宽高 | img、input、textarea、button、select等 | display:inline-block |
显示模式的切换: display:block 转换为块级元素 display:inline-block 转换为行内块元素 display:inline 转换为行内元素
盒子模型总结:
分类 | 详细内容 |
---|---|
盒子模型组成部分 | 1. 内容区域:width - height 2. 内边距 --padding(出现在内容与边缘之间,会撑大盒子) 3. 边框线:border 4. margin(出现在盒子外面),拉开两个盒子之间的距离 |
盒子模型 - 边框线 | 1. 设置全部的边框线 - 属性名:border(bd) - 属性值:边框线粗细 线条样式(solid dashed dotted) 颜色(不分顺序) 2. 设置单个方向的边框线 - 属性名: border - top、border - left、border - right、border - bottom - 属性值:边框线粗细 线条样式(solid dashed dotted) 颜色(不分顺序) |
盒子模型 - 内边距 | 1. 统一设置所有方向的内边距:padding: 值 2. 分别设置四个方向的内边距:padding: 上 右 下 左 3. 单独设置某个方向的内边距 - padding - top: 设置上内边距 - padding - right: 设置右内边距 - padding - bottom: 设置下内边距 - padding - left: 设置左内边距 |
盒子模型 - 尺寸计算 | 1. 盒子尺寸 = 内容尺寸 + border尺寸 + 内边距padding尺寸 2. 内边距和边框线距都会撑大盒子 3. 解决方法:手动做减法;内减模式:box - sizing:border - box |
盒子模型 - 外边距 | 1. 统一设置所有方向的外边距:margin: 值 2. 分别设置四个方向的外边距:margin: 上 右 下 左 3. 单独设置某个方向的外边距 - margin - top: 设置上外边距 - margin - right: 设置右外边距 - margin - bottom: 设置下外边距 - margin - left: 设置左外边距 4. 版心居中(设置水平居中):margin:数字px auto |
盒子模型 - 元素溢出 | 1. 作用:控制溢出元素的内容的显示方式 2. 属性:overflow 3. 属性值: - hidden:溢出隐藏 - scroll:溢出滚动(无论是否溢出,都显示会滚动条位置) - auto:溢出滚动(溢出才显示滚动条位置) |
外边距问题 - 合并和塌陷 | 1. 合并:垂直排列的兄弟元素,上下margin会合并,取两个margin中的较大值生效 2. 塌陷:父子级的标签,子级的添加上外边距会产生塌陷问题,导致父级一起向下移动 - 解决方法:取消自己margin,父级设置padding-----推荐设置使用;父级设置overflow:hidden;父级设置border - top |
行内元素垂直内外边距 | 1. 场景:行内元素无法设置margin和padding,无法改变元素垂直位置 2. 解决方法:给行内元素添加line - height可以改变垂直位置 |
盒子模型 - 圆角 | 1. border - radius:数字+px + 百分比(圆角半径) 2. 正圆:直接设置50%(前提要正方形盒子),百分比的最大取值为50%,超过百分之五十仍然是一个圆 3. 胶囊形:设置圆角为高的一半 |
盒子模型 - 阴影 | 1. 属性名:box - shadow 2. 属性:x轴偏移量 y轴偏移量 模糊半径 扩散半径 颜色 内外阴影 3. 注意:x轴偏移量 y轴偏移量 必须书写;盒子默认是外阴影,内阴影需要添加insert |
相关文章:
深入理解CSS显示模式与盒子模型
一、CSS显示模式:元素的“性格”决定布局 1. 显示模式基础 CSS显示模式(display属性)决定了元素在页面中的排列方式和尺寸表现。常见的显示模式有三大类型: 2. 块级元素(Block) 特点:独占一…...
突破SQL注入字符转义的实战指南:绕过技巧与防御策略
在渗透测试中,SQL注入始终是Web安全的重点攻击手段。然而,当开发者对用户输入的特殊字符(如单引号、反斜杠)进行转义时,传统的注入方式往往会失效。本文将深入探讨如何绕过字符转义限制,并给出防御建议。 目…...
java网络原理5
一、网络地址转换(NAT) 1. 原理 - NAT 用于解决 IP 地址不够用的问题 ,将 IP 地址分为外网 IP(公网 IP)和内网 IP(私网 IP)。内网 IP 如 10.、172.16 - 172.31.、192.168.* 等,家用…...
一种基于光源评估并加权平均的自动白平衡方法(一)
在之前的博文如何在白平衡标定种构建不同类型的白平衡色温坐标系作为实例说明的白平衡色温坐标系的构建中,利用的如下映射矩阵构建色温坐标系: 按照上述论文的说明,是不能直接把Raw域中的每块的RGB带入公式...
基于Docker Compose的Prometheus监控系统一键部署方案
前言 在当今的云原生时代,系统监控已经成为保障业务稳定运行的重要基石。本文旨在提供一个完整的解决方案,帮助您快速搭建一个功能强大的监控系统。通过Docker Compose实现一键部署,结合Prometheus、Grafana、cAdvisor和node-exporter等优秀开源工具,构建一个完整的监控体…...
服务器丢包率测试保姆级教程:从Ping到网络打流仪实战
测试服务器丢包率是网络性能诊断的重要环节,丢包通常由网络拥塞、硬件故障、配置错误或线路质量差导致。以下是多种测试方法的详细步骤和工具说明: 一、基础工具测试(无需专业设备) 1. 使用 ping 命令 命令示例: bash…...
家庭服务器IPV6搭建无限邮箱系统指南
qq邮箱操作 // 邮箱配置信息 // 注意:使用QQ邮箱需要先开启IMAP服务并获取授权码 // 设置方法:登录QQ邮箱 -> 设置 -> 账户 -> 开启IMAP/SMTP服务 -> 生成授权码 服务器操作 fetchmail 同步QQ邮箱 nginx搭建web显示本地同步过来的邮箱 ssh…...
Ubuntu ZLMediakit的标准配置文件(rtsp->rtmp->hls)
最近在工作中遇到不生成hls资源的问题,后面发现是配置文件有误,特此记录正确的config.ini配置文件,方便查阅。 最终解决方案,通过下面这种格式可以访问到flv视频,具体为什么不太清楚,rtmp格式:rtmp://39.113.48.113:8089/live/1744168516937396175 记录最终解决方案:ht…...
Android 移动开发:ProgressBar(转圈进度条)
目录 Android 移动开发:ProgressBar(转圈进度条)控件实战介绍 📂 文件说明 🧾 activity_main.xml(布局文件,XML) 🧾 MainActivity.java(逻辑代码…...
CSS:选择器-复合选择器
文章目录 1、交集选择器 1、交集选择器 <style>/* 选中类名为rich的元素*/.rich {color: gold;}/* 选中类名为beauty的元素*/.beauty {color: red;}/* 选中类名为beauty的p元素,这种形式(元素配合类选择器)以后用的很多!&am…...
Kafka-可视化工具-Offset Explorer
安装: 下载地址:Offset Explorer 安装好后如图: 1、下载安装完毕,进行新增连接,启动offsetexplorer.exe,在Add Cluster窗口Properties 选项下填写Cluster name 和 kafka Cluster Version Cluster name (集…...
在pycharm中创建Django项目并启动
Django介绍 Django 是一个基于 Python 的开源 Web 应用框架,采用了 MTV(Model - Template - View)软件设计模式 ,由许多功能强大的组件组成,能够帮助开发者快速、高效地创建复杂的数据库驱动的 Web 应用程序。它具有以…...
私有知识库 Coco AI 实战(六):打造 ES Mapping 小助手
开发同学可能经常和字段类型打交道,数据类型本来就不少,新版本可能还有新的数据类型。更重要的是新的字段类型可能会提升某个场景的性能,不知道的话可就亏大发了。所以我们继续打造一个 ES Mapping 小助手。 克隆小助手 我们进入 Coco Serv…...
JavaScript性能优化实战之代码层面性能优化
在前端开发中,JavaScript 的性能直接影响到网站的加载速度、用户体验和交互流畅度。针对代码层面的优化,我们可以从多个方面入手,确保每一行代码都能最大化地发挥效能。接下来,我们将细化并解释每一个优化点。 1️⃣ 避免全局变量污染 全局变量会被整个 JavaScript 代码所…...
基于C++的IOT网关和平台2:github项目ctGateway技术说明书
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 …...
前端基础之《Vue(13)—重要API》
重要的API 一、nextTick() 1、写法 Vue.$nextTick()或者this.$nextTick() 原因: set操作代码是同步的,但是代码背后的行为是异步的。set操作修改声明式变量,触发re-render生成新的虚拟DOM,进一步执行diff运算,找到…...
Python爬虫实战:获取彼岸网高清素材图片
一、引言 在数字化时代,图片素材的需求持续增长。彼岸网提供了丰富的高质量图片资源,其中 4K 风景图片备受用户青睐。借助 Python 爬虫技术,可自动化地从彼岸网获取这些图片,为用户提供便捷的图片素材服务。然而,爬取过程中会遭遇登录验证、反爬机制等问题,需采用相应技…...
拥抱 Kotlin Flow
1. 引言 Kotlin Flow 是 Kotlin 协程生态中处理异步数据流的核心工具,它提供了一种声明式、轻量级且与协程深度集成的响应式编程模型。与传统的 RxJava 相比,Flow 更简洁、更易于维护,尤其在 Android 开发中已成为主流选择。本文将从基础概念…...
winget使用
Get-Command winget winget search qq winget install Tencent.QQ.NT...
C++从入门到实战(十一)详细讲解C/C++语言中内存分布与C与C++内存管理对比
C从入门到实战(十一)详细讲解C/C语言中内存分布与C与C内存管理对比 前言一、C/C语言中内存分布1.内核空间2.栈3.堆4.数据段5.代码段 二、例题带练巩固C/C语言中内存分布的知识题目讲解题目答案 三、C语言动态内存分配(知识回顾)3.…...
flutter 专题 一百零四 Flutter环境搭建
Flutter简介 Flutter 是Google开发的一个移动跨平台(Android 和 iOS)的开发框架,使用的是 Dart 语言。和 React Native 不同的是,Flutter 框架并不是一个严格意义上的原生应用开发框架。Flutter 的目标是用来创建高性能、高稳定性…...
傅里叶与相位偏移
一、简介 大三的《离散数学》。。。。。 傅里叶变换是数学与工程领域的一项革命性工具,其核心思想是将复杂信号分解为简单正弦波的叠加,实现从时域(时间维度)到频域(频率维度)的转换。通过这种变换&#x…...
Godot笔记:入门索引
文章目录 前言游戏引擎软件界面关键概念GDScript导出成品创建非游戏应用后记 前言 最近对游戏引擎这块感兴趣,特别是因为游戏引擎自带的很多工具,作为图形化软件的开发应该也不错。 Godot 是一款这几年比较流行的开源游戏引擎。这里记录下入门学习使用 …...
OpenCV实战教程 第一部分:基础入门
第一部分:基础入门 1. OpenCV简介 什么是OpenCV及其应用领域 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,于1999年由Intel公司发起,现在由非营利组织OpenCV.org维护。Ope…...
OpenCV 图像处理核心技术 (第二部分)
欢迎来到 OpenCV 图像处理的第二部分!在第一部分,我们学习了如何加载、显示、保存图像以及访问像素等基础知识。现在,我们将深入探索如何利用 OpenCV 提供的强大工具来修改和分析图像。 图像处理是计算机视觉领域的基石。通过对图像进行各种…...
Git从入门到精通-第二章-工具配置
目录 命令行 安装Git 初次运行Git前的配置 git config基本概念 常用命令 配置用户信息 配置文本编辑器 查看配置 配置别名(简化命令) 高级配置 换行符处理(方便跨平台协作) 忽略文件权限变更(常用于团队协…...
树状结构转换工具类
项目中使用了很多树状结构,为了方便使用开发一个通用的工具类。 使用工具类的时候写一个类基础BaseNode,如果有个性化字段添加到类里面,然后就可以套用工具类。 工具类会将id和pid做关联返回一个树状结构的集合。 使用了hutool的工具包判空…...
C#基础简述
C#基础详解 一、C#语言概述 C#(读作"C Sharp")是微软开发的面向对象的编程语言,运行在.NET平台上。它结合了C的强大功能和Visual Basic的简单性,具有以下特点: 面向对象:支持封装、继…...
AI赋能烟草工艺革命:虫情监测步入智能化时代
在当今竞争激烈且品质至上的烟草行业中,生产流程的每一个细微环节都关乎着企业的生死存亡与品牌的兴衰荣辱。烟草工艺部门与制丝、卷包车间作为生产链条的核心驱动,犹如精密仪器中的关键齿轮,彼此紧密咬合、协同运转,任何一处的小…...
小刚说C语言刷题—1462小明的游泳时间
1.题目描述 伦敦奥运会要到了,小明在拼命练习游泳准备参加游泳比赛。 这一天,小明给自己的游泳时间做了精确的计时(本题中的计时都按 24 小时制计算),它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分。 请你帮小…...
StarRocks Lakehouse 如何重构大数据架构?
随着数据分析需求的不断演进,企业对数据处理架构的期望也在不断提升。在这一背景下,StarRocks 凭借其高性能的实时分析能力,正引领数据分析进入湖仓一体的新时代。 4 月 18 日,镜舟科技高级技术专家单菁茹做客开源中国直播栏目《…...
用TCP实现服务器与客户端的交互
引言: 这篇文章主要是用TCP构造的回显服务器,也就是客户端发什么,就返回什么。用实现这个过程方式来学会TCP套接字的使用。 一、TCP的特点 TCP是可靠的:这个需要去了解TCP的机制,这是一个大工程,博主后面写…...
用于实时辐射场渲染的3D高斯溅射——3D Gaussian Splatting for Real-Time Radiance Field Rendering
用于实时辐射场渲染的3D高斯溅射——3D Gaussian Splatting for Real-Time Radiance Field Rendering 文章目录 用于实时辐射场渲染的3D高斯溅射——3D Gaussian Splatting for Real-Time Radiance Field Rendering摘要Abstract1. 预备知识1.1 三维的几何表示1.2 计算机中的集合…...
Vue3 Echarts 3D立方体柱状图实现教程
文章目录 前言一、实现原理二、series ——type: "pictorialBar" 简介2.1 常用属性 三、代码实战3.1 封装一个echarts通用组件 echarts.vue3.2 实现一个立方体柱状图(1)首先实现一个基础柱状图(2)添加立方体棱线&#x…...
Soildworks怎样在装配体中建立局部剖视图
1思路:建立拉伸切除 2步骤 1-打开点线面显示按钮 2-在装配体中依据某个基准面(例如前视基准面)建立一个待切除的草图 3-点击顶部工具栏的装配体--->装嫩配体特征---->拉伸切除---Ok 3具体图示 1-点击,使其变成灰色 即…...
基于C++的IOT网关和平台5:github项目ctGateway开发指南
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 …...
虚拟机centos7安装docker
虚拟机CentOS 7上安装 Docker流程 1. 更新系统软件包 需要确保系统软件包是最新的 sudo yum -y update sudo:以超级用户权限执行命令。 yum:CentOS的包管理器工具。 -y:自动确认所有提示,直接执行。 2. 安装 Docker 依赖 在安装 …...
11.Spring Boot 3.1.5 中使用 SpringDoc OpenAPI(替代 Swagger)生成 API 文档
Spring Boot 3.1.5 中使用 SpringDoc OpenAPI(替代 Swagger)生成 API 文档 1. 项目结构 假设项目名为 springboot-openapi-demo,以下是项目的基本结构: springboot-openapi-demo/ ├── src/ │ ├── main/ │ │ ├─…...
pytorch对应gpu版本是否可用判断逻辑
# gpu_is_ok.py import torchdef check_torch_gpu():# 打印PyTorch版本print(f"PyTorch version: {torch.__version__}")# 检查CUDA是否可用cuda_available torch.cuda.is_available()print(f"CUDA available: {cuda_available}")if cuda_available:# 打印…...
Kubernetes 集群概念详解
Kubernetes 集群概念详解 Kubernetes 集群是由多个计算节点组成的容器编排系统,用于自动化部署、扩展和管理容器化应用。以下是 Kubernetes 集群的核心概念和架构解析: 一、集群基础架构 1. 集群组成要素 graph TBMaster[控制平面] --> Node1[工作…...
BT137-ASEMI机器人功率器件专用BT137
编辑:LL BT137-ASEMI机器人功率器件专用BT137 型号:BT137 品牌:ASEMI 封装:TO-220F 批号:最新 引脚数量:3 封装尺寸:如图 特性:双向可控硅 工作结温:-40℃~150℃…...
ArcGIS+GPT:多领域地理分析与决策新方案
技术点目录 AI大模型应用ArcGIS工作流程及功能prompt的使用技巧AI助力工作流程AI助力数据读取AI助力数据编辑与处理AI助力空间分析AI助力遥感分析AI助力二次开发AI助力科研绘图ArcGISAI综合应用了解更多 ——————————————————————————————————…...
鸿蒙文件上传-从前端到后端详解,对比jq请求和鸿蒙arkts请求区别,对比new FormData()和鸿蒙arktsrequest.uploadFile
需要权限:ohos.permission.INTERNET 1.nodejs自定义书写上传后端接口 传输过来的数据放在files?.image下 router.post(/upload,(req, res) > {var form new multiparty.Form();form.uploadDirpublic/images/uploads; //上传图片保存的地址(目录必须存在)fo…...
【DBeaver】如何连接MongoDB
MongoDB驱动 在 DBeaver 社区版是没有的,得自己下载 一、下载mongo-jdbc-standalone.jar 二、在工具栏找到数据库,选择驱动管理器 三、在驱动管理器点击新建 四、选择库,添加mongo-jdbc-standalone.jar;然后点击找到类 五、选择设置&#x…...
Unity 粒子同步,FishNet
Github的工程 同步画面 使用FishNet插件同步,可使用这个选项来克隆第二个项目进行测试...
自然语言处理之命名实体识别:Bi-LSTM-CRF模型的评估与性能分析
命名实体识别(Named Entity Recognition, NER)是自然语言处理(NLP)的核心任务之一,旨在从文本中识别出具有特定意义的实体(如人名、地名、机构名等),并为其分类。随着深度学习的发展,**Bi-LSTM-CRF**(双向长短期记忆网络结合条件随机场)模型因其强大的序列建模能力成…...
【SpringBoot】基于mybatisPlus的博客系统
1.实现用户登录 在之前的项目登录中,我使用的是Session传递用户信息实现校验登录 现在学习了Jwt令牌技术后我尝试用Jwt来完成校验工作 Jwt令牌 令牌一词在网络编程一节我就有所耳闻,现在又拾了起来。 这里讲应用:令牌也就用于身份标识&a…...
[Android]任务列表中有两个相机图标
现象: 修改AndroidManifest.xml <activityandroid:name"com.android.camera.PermissionsActivity"android:label"string/app_name"android:launchMode"singleTop"android:configChanges"orientation|screenSize|keyboardH…...
VINS-FUSION:配置参数说明与配置自己的参数
文章目录 📚简介📍配置文件说明📷相机配置参数🔧设备参数🎯配置自己的参数📷相机参数🔧设备参数📚简介 VINS-Fusion 是一个基于优化的多传感器状态估计器,实现了视觉惯性里程计(VIO)和视觉惯性全球导航卫星系统(VI-GNSS)融合。 📍配置文件说明 VINS-Fus…...
Polars: 新一代高性能数据处理库
<------最重要的是订阅“鲁班模锤”------> 在数据科学和数据分析领域,性能和效率一直是从业者关注的焦点。随着数据量的爆炸式增长,传统的数据处理工具如pandas在处理大规模数据时逐渐显露出其局限性。在这样的背景下,一个名为Polars…...