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

CSS 入门指南(一):基本概念 选择器 常用元素属性

一、初识 CSS

1, CSS 定义

层叠样式表(Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)

CSS 能够对网页中元素位置的排版进行 像素级 精确控制,实现美化页面的效果. 能够做到页面的样式和结构分离

image-20250225164123718

2, 基本语法规范

选择器 +{一条/N条声明)

  • 选择器决定针对谁修改(找谁)
  • 声明决定修改啥 (干啥)
  • 声明的属性是键值对,使用:区分键值对,使用:区分键和值

书写规则: 选择器{属性名:属性值}

<style>/*这里写的都是css,css通常写在style标签中*/         p{ /*p:选择器:查找标签*//*设置文字颜色变红*//* color: red; */color:  rgb(172,25,44);/*字变大 px:像素 */font-size: 30px;}
</style><p>这是一个p标签</p>

注意:

  • css 要写到 style 标签中(后面还会介绍其他写法)
  • style 标签可以放到页面任意位,一般放到 head 标签内
  • CSS 使用 /* */ 作为注释.(使用 ctrl +/快速切换)

3, CSS 引入

① 内部样式表:学习使用

  • CSS 代码在 style 标签里面,嵌入到 html 内部
  • 优点:这样做能够让样式和页面结构分离.
  • 缺点:分离的还不够彻底. 尤其是 css 内容多的时候.

前面写的代码主要都是使用了这种方式. 实际开发中不常用.

  • PS: 搜狗搜索中仍然保留着这种写法.

image-20250225164947394

② 行内样式表:配合 JS 使用

  • 通过 style 属性, 来指定某个标签的样式.
  • 只适合于写简单样式. 只针对某个标签生效.
  • 缺点: 不能写太复杂的样式,这种写法优先级较高, 会覆盖其他的样式
<style>div {color: red;}
</style>
<div style="color:green">想要生活过的去, 头上总得带点绿</div>

效果如下:

image-20250225165421411

  • 此时可以看到 red 被覆盖了

③ 外部样式表:开发使用

  • CSS 代码写在单独的 CSS 文件里面 (.css)

  • 在 HTML 使用 link 标签引入 CSS

  • <link rel="stylesheet" href="[CSS文件路径]">
    
  • 优点: 样式和结构彻底分离了.

  • 缺点: 受到浏览器缓存影响, 修改之后 不一定 立刻生效

【案例】:

<!--创建 my.css文件-->
p{color: red;
}<!--创建 test.html文件-->
<head>
<!-- link 引入外部样式表,rel: 关系,样式表 --><link rel="stylesheet" href="./my.css">
</head><body><p>这是一个p标签</p>
</body>

注意:不要忘记 link 标签调用 CSS, 否则不生效

关于缓存:

  • 这是计算机中一种常见的提升性能的技术手段.
  • 网页依赖的资源(图片/CSS/JS等)通常是从服务器上获取的。如果频繁访问该网站,那么这些外部资源就没必要反复从服务器获取. 就可以使用缓存先存起来(就是存在本地磁盘上了)。从而提高访问效率
  • 可以通过 ctrl + F5 强制刷新页面,强制浏览器重新获取 css 文件

4, 代码风格

样式风格

① 紧凑风格

p { color: red; font-size: 30px;}

② 展开风格

p {color: red;font-size: 30px;
}

样式大小写

 虽然 CSS 不区分大小写, 我们开发时统一使用小写字母

空格规范

  • 冒号后面带空格
  • 选择器和 { 之间也有一个空格

二、选择器

1. 基本概念

选择器功能

选中页面中指定的标签元素,来设置样式

  • 要先选中元素, 才能设置元素的属性.
  • 就好比 SC2, War3 这样的游戏, 需要先选中单位, 再指挥该单位行动.

选择器种类

以下内容只是 CSS2 标准中支持的选择器, 在 CSS3 中还做出了一些补充, 咱们后面再说

基础选择器:单个选择器构成的

  1. 标签选择器
  2. 类选择器
  3. id 选择器
  4. 通配符选择器

复合选择器:把多种基础选择器综合运用起来

  1. 后代选择器
  2. 子选择器
  3. 并集选择器
  4. 伪类选择器

参考文档:w3school

2. 基础选择器

2.1 标签选择器

**标签选择器:**使用 标签名 作为选择器 -> 选中 同名标签 设置 相同的样式

特点: 能快速为同一类型的标签都选择出来,但是不能差异化选择。相当于 选中所有的这个标签都生效css

例如:p,h1,div,a,img…

<style>
p {color: red;
}
div {color: green;
}
</style>
<p></p>
<p>咬人</p>
<div></div>
<div>阿叶</div>
<div>阿叶君</div>
2.2 类选择器

特点: 差异化表示不同的标签,可以让多个标签的都使用同一个标签.

步骤:

  1. 定义类选择器 -> .类名

  2. 使用类选择器 -> 标签添加 class= “类名”

<style>.red{color: red;}.size{font-size: 66px;}
</style><p>111</p> <!--黑色--><!-- 一个标签可以使用多个类名,用空号隔开就行 -->
<p class="red size ">222</p> <!--红色-->
<div class="red">333</div>

注意:

  • 类名用 . 开头的
  • 一个类可以被多个标签使用, 一个标签也能使用多个类(多个类名要使用空格分割, 这种做法可以让 代码更好复用)
  • 类名自定义,不要用 纯数字或者中文,尽量用英文命名
  • 类名可以由数字、字母、下划线、中划线组成,但是不能用数字、中划线开头
  • 一个标签可以同时使用多个类名 ,用空号隔开就行,这样做可以把相同的属性提取出来,达到简化代码的效果.

**开发习惯:**类名见名知意,多个单词可以用 - 连接

2.3 id 选择器

和类选择器类似.

  • CSS 中使用 # 开头表示 id 选择器
  • id 选择器的值和 html 中某个元素的 id 值相同
  • html 的元素 id 不必带 #
  • id 是唯一的, 不能被多个标签使用 (是和 类选择器 最大的区别)

步骤:

  • 定义 id 选择器 -> #id
  • 使用 id 选择器 -> 标签添加 id= “id名”
<style>#blue{color: skyblue;}
</style><div id="blue">这个div文字是蓝色</div>
<p id="blue">111</p>以后加js会容易出错

注意:

  1. 所有标签都有id属性
  2. id 属性值在一个页面中是唯一的,不可重复
  3. 一个标签只能有一个id属性
  4. 一个id选择器只能选中一个标签

类比:姓名是类选择器, 可以重复。 身份证号码是 id 选择器,是唯一的.

**id 选择器 VS 类选择器:**前者优先级更高

2.4 通配符选择器

通配符选择器: ***** , 不需要被页面结构调用。

  • 浏览器自动查找页面所有标签,设置相同样式
<style>/* *通配符,作用找到页面中所有标签,设置样式,一般用于网页中 统一行距和字距 */*{color: red;}
</style><div>div</div>
<h1>h1</h1>
<p>pp</p>
2.5 基础选择器小结
名称作用特点
标签选择器能选出所有相同标签不能差异化选择
类选择器能选出一个或多个标签根据需求选择,最灵活常用
id 选择器能选出一个标签同一个 id 在一个 HTML 中只能出现一次
通配符选择器能选择所有标签特殊情况下使用

3. 复合选择器

定义: 由 两个 或 多个基础选择器,通过不同的方法组合而成

作用:更准确、更高效的选择目标元素(标签)

<span> span 标签</span>
<div><span> 文字颜色 </span>
</div>
  • 元素 1 和 元素 2 要使用空格分割
  • 元素 1 是父级, 元素 2 是子级, 只选元素 2 , 不影响元素 1
3.1 后代选择器

后代选择器:又叫包含选择器,选中某元素的某后代元素

选择器写法: 父选择器 子选择器 {CSS 属性},父子选择器之间用空格隔开

如下:

元素1 元素2 {样式声明}

【案例1】

<style>/* 找到div里面的 p 设置文字颜色是红色 */div p{color: red;}
</style><!-- 后代:儿子,孙子,重孙子 -->
<p>这是p标签</p>
<div><p>这是div的儿子</p><span><p> span 的儿子</p></span><p><p>p儿子的儿子</p><div>p儿子的div</div><div><p>div的儿子</p></div></p>
</div>

效果如下:

image-20250226102850095

  • 上面我们可以看到只要是属于 div 后代的 p标签,都变红了

【案例 2】:可以是任意基础选择器的组合. (包括类选择器, id 选择器)

<style>.one li a {color: green;}
</style><ol class="one"><li>ddd</li><li>eee</li><li><a href="#">fff</a></li><li><a href="#">fff</a></li><li><a href="#">fff</a></li>
</ol>
3.2 子代选择器

如果我们不想选中所有后代,只选子代

子代选择器:选中某元素的 子代 元素(最近的子级),只选择亲儿子,不选孙子元素

选择器写法: 父选择器 > 子选择器{CSS 属性},父子选择器之间用 > 隔开

<style>.cat>a {color: red;}
</style><!--使用 Emmet 快捷键生成上面的 html 代码: .cat>a+ul>li*2>a -->
<div class="cat"><a href="#">小猫</a><ul><li><a href="#">小狗</a></li><li><a href="#">小狗</a></li></ul>
</div>
3.3 并集选择器

并集选择器:选中多组标签设置相同样式

✈️ 选择器写法:元素1,元素2,… ,元素N {CSS 属性}

  • 选择器之间用 , 隔开
  • 表示同时选中元素 1 和 元素 2 …
  • 任何基础选择器都可以使用并集选择器.
  • 并集选择器建议竖着写,每个选择器占一行. (最后一个选择器不能加逗号)
<style>/* 每组选择器可以是基础选择器或者复合选择器 */span,h1,div>p{color: red;}
</style><p>pp</p>
<div>div</div>
<span>span</span>
<h1>h1</h1>
<div><p>div的儿子</p>
</div>
3.4 交集选择器

交集选择器:选中同时满足 多个条件 的元素

🇭🇹 选择器写法:选择器1选择器2{CSS 属性},选择器之间连写,没有任何符号。

p.box{color: red;}

注意:如果交集选择器中有标签选择器,标签选中器必须写在最前面

<head><title>交集选择器</title><style>p.box{color: red;}p.div.box{color:green;}div#blue{color:blue;}</style>
</head>
<body><p class="box ">这是p标签 :box</p><p>pppp</p><div class="box">这是div标签:box</div><p class="div box">1</p><div id="blue">交集选择器的id</div>
</body>
3.5 伪类选择器

🔗 伪类选择器:伪类表示元素状态,选中元素的某个状态设置样式

<style>
/* 悬停的时候文字颜色是红色,用hover来设置样式 */a:hover {color: red; background-color:green;}div:hover {color:red ;}
</style><a href="#">这是超链接</a>
<!-- 任何标签都可以添加伪类,任何一个标签都可以鼠标悬停 -->
<div>div </div>

① 链接伪类选择器

选择器作用
:link访问前
:visited访问后
:hover鼠标悬停
:active点击时(激活)
<style>/*  超链接伪类 */<!-- 任何标签都可以添加伪类,任何一个标签都可以鼠标悬停 -->a:link {color: red;} a:visited {color: green;} <!-- 访问后 -->a:hover{color:blue;}a:active{color:orange;}
</style><a href="#">这是超链接</a>

注意:

  • 注意事项 按照 LVHA 的顺序书写, 例如把 active 拿到前面去, 就会导致 active 失效。记忆规则 “绿化”

  • 浏览器的 a 标签都有默认样式,一般实际开发都需要单独制定样式.

  • 实际开发主要给链接做一个样式,然后给 hover 做一个样式即可. link, visited, active 用的不多.

如下:

/* 工作中,一个 a 标签选择器设置超链接的样式, hover 状态特殊设置 */
a {color: black;}
a:hover {color: red;}  

备注:如何让一个已经被访问过的链接恢复成未访问的状态?

  • 清空浏览器历史记录即可:ctrl + shift + delete

② :foces 伪类选择器

选取获取焦点的 input 表单元素.

<style>.three>input:focus{color:red;}
</style><div class="three"><input type="text"><input type="text">
</div>

此时被选中的表单的字体就会变成红色

③ 结构伪类选择器

根据元素的 结构关系 查找元素

选择器说明
E:first-child查找第一个 E 元素
E:last-child查找最后一个 E 元素
E:nth-child(N)查找第 N 个 E 元素(第一个元素 N 值为1)

【案例】

<style>p:first-child{color: red;}p:nth-child(3){color:blue;}p:last-child{color: green;}
</style><p>P: 111</p>
<p>P: 222</p>
<p>P: 333</p>
<p>P: 444</p>

效果如下:

image-20250226213016700

补充::nth-child(公式)

根据元素的结构关系查找多个元素

功能公式
偶数标签2n
奇数标签2n+1; 2n-1
找到 5 倍速的标签5n
找到第 5 个以后的标签n+5
找到第 5 个以前的标签-n+5

④ 伪元素选择器

创建虚拟元素(伪元素),用来摆放装饰性的内容

选择器说明
E::before在 E 元素里面 最前面 添加一个伪元素
E::after在 E 元素里面 最后面 添加一个伪元素

注意:

  • 必须设置 content: " " 属性,用来设置 伪元素 内容,如果没有内容,则引号留空
  • 伪元素默认是 行内 显示模式,不受 宽高 影响
  • 权重 和 标签选择器 相同
<style>div{color: red;}div::before{content: "I";}div::after{content: "You";}
</style>
<div> miss </div>

结果如下:

image-20250226214212276

3.6 复合选择器小结
选择器作用注意事项
后代选择器选择后代元素可以是孙子元素
子选择器选择子元素只能选亲儿子,不能选孙子
并集选择器选择相同样式的元素更好的做到代码复用
链接伪类选择器选择不同样式的元素重点掌握 a:hover 的写法
:focus 伪类选择器选择被选中元素重点掌握 input:focus

三、常用元素属性

描述属性属性值 / 关键字
字体大小font-size30px/10em/300%/3cm
字体粗细font-weight数字 / normal / bold
字体倾斜font-stylenormal / italic
字体族font-family黑体、微软雅黑
字体复合属性font

备注:上面 1 em = 当前标签的字号大小

1. 字体属性

1.1 设置字体
body {font-family: '微软雅黑';font-family: 'Microsoft YaHei';
}

注意:

  1. 字体名称可以用中文,但是不建议

  2. 如果电脑没有 安装微软雅黑,就按照黑体使用

  3. 如果电脑有没有安装黑体,就按照任意一种非衬线字体系列显示

    • 可以设置多个字体名称,之间使用空格隔开,在实际加载中只会选择一种加载,选择的依据是书写顺序进行(每个字体名用逗号隔开,从左往右查找)

    • 如果浏览器不支持第一个字体,则会尝试下一个,直到找到第一个支持的字体。

font-family: 微软雅黑,黑体, sans-serif;
  • font-family 属性最后设置一个字体族名,网页开发建议使用 无衬线字体
  • 建议使用常见字体, 否则兼容性不好

【案例】

<style>.font-family .one {font-family: 'Microsoft YaHei';}.font-family .two {font-family: '宋体';}
</style><div class="font-family"><div class="one">这是微软雅黑</div><div class="two">这是宋体</div>
</div>
1.2 设置大小
p{font-size: 20px}
  • 不同的浏览器默认字号不一样,最好给一个明确值. (chrome 默认是 16px)
  • 可以给 body 标签使用 font-size
  • 要注意单位 px 不要忘记.
  • 标题标签需要单独指定大小

注意:实际上它设置的是字体中字符框的高度;实际的字符字形可能比这些框高或矮

【案例】

<style>.font-size .one {font-size: 40px;}.font-size .two {font-size: 20px;}
</style><div class="font-size"><div class="one">大大大</div><div class="two">小小小</div>
</div>
1.3 设置粗细
p{font-weight: bold;font-weight: 700;
}
  • 可以使用数字表示粗细
  • 700 == bold,400 是不变粗
  • == norma取值范围是 100->900

【案例】

<style>.font-weight .one {font-weight: 900;}.font-weight .two {font-weight: 100;}
</style><div class="font-weight"><div class="one">粗粗粗</div><div class="two">细细细</div>
</div>
1.4 文字样式
/*设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal;
  • 很少把某个文字变倾斜
  • 但是经常要把 em /i 改成不倾斜

【案例】

<style>.font-style em {font-style: normal;}.font-style div {font-style: italic;}
</style><div class="font-style"><em>倾斜1</em><div class="one">倾斜2</div>
</div>
1.5 font 复合属性

font 是否倾斜,是否加粗,字号/行高 字体(必须按顺序属性)

<style>p{ /* font-size: ;font-style: ;font-weight: ;font-family: ; *//* font: style weight size 字体 */font: italic 700 66px 宋体; /* 可以省略前两个,如果省略了相当于设置了默认值 */font: 100px 微软雅黑;/* 一个属性冒号后面书写多个值的写法--复合属性 */}
</style><p>这是p标签</p>

注意:字号和字体值必须书写,否则 font 属性不生效

2. 文本属性

文本缩进text-indent数字 + px / em
文本对齐text-alignleft(左对齐)、 center(居中)、right(右对齐)
修饰线text-decorationnone(无)、underline(下滑线)、line-through(删除线)、overline(上划线)
颜色color颜色英文词、rgb、rgba、#RRGGBB(16进制)
行高line-height30px/ 2(纯数字表示是当前大小的倍数)
2.1 文本颜色

认识 RGB

我们的显示器是由很多很多的 “像素” 构成的. 每个像素视为一个点, 这个点就能反映出一个具体的颜色.

  • 我们使用 R (red), G (green), B (blue) 的方式表示颜色(色光三原色). 三种颜色按照不同的比例搭配, 就能混合出各种五彩斑斓的效果.
  • 计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(8个比特位, 表示的范围是 0-255, 十六进制表示 为 00-FF).
  • 数值越大, 表示该分量的颜色就越浓. 255, 255, 255 就表示白色; 0, 0, 0 就表示黑色.

设置文本颜色

color: red;
color: #ff0000;
color: rgb(255, 0, 0);

鼠标悬停在 vscode 的颜色上, 会出现颜色选择器, 可以手动调整颜色.

color 属性值的写法:

  • 预定义的颜色值(直接是单词)
  • [最常用] 十六进制形式
  • RGB 方式

十六进制形式表示颜色, 如果两两相同, 就可以用一个来表示.

#ff00ff => #f0f

<style>.color {color: red;/* color: rgb(255, 0, 0); *//* color: #ff0000; */}
</style>
<div class="color">这是一段话</div>
2.2 文本对齐

控制文字水平方向的对齐

不光能控制文本对齐,也能控制图片等元素居中或者靠右

text-align:[值];
  • center:居中对齐
  • left: 左对齐
  • right: 右对齐

【案例】:

<style>
.text-align .one {text-align:left;}
.text-align .two {text-align: right;}
text-align .three {text-align:center;}
</style><div class='text-align'><div class="one">左对齐</div><div class="two">右对齐</div><div class="three">居中对齐</div>
</div>
2.3 文本装饰
text-decoration: [值];

常用取值:

  • underline: 下划线
  • none: 啥都没有. 可以给 a 标签去掉下划线.
  • overline :上划线. [不常用]
  • line-through: 删除线 [不常用]

【案例】:

<style>.text-decorate .one {text-decoration: none;}.text-decorate .two {text-decoration: underline;}.text-decorate .three {text-decoration: overline;}.text-decorate .four {text-decoration: line-through;}
</style><div class="text-decorate"><div class="one">啥都没有</div><div class="two">下划线</div><div class="three">上划线</div><div class="four">删除线</div>
</div>
2.4 文本缩进

控制段落的 首行 缩进 (其他行不影响)

text-indent: [值]
  • 单位可以使用 px 或者 em
  • 使用 em 作为单位更好,1 个 em 就是当前元素的文字大小.
  • 缩进可以是负的, 表示往左缩进. (会导致文字就冒出去了)

【案例】:

<style>.text-indent .one {text-indent: 2em;}.text-indent .two {text-indent: -2em;}
</style><div class="text-indent"><div class="one">正常缩进</div><div class="two">反向缩进</div>
</div>
2.5 行高

行高指的是上下文本行之间的基线距离.

HTML 中展示文字涉及到这几个 基准线

  • 顶线
  • 中线
  • 基线 (相当于英语四线格的倒数第二条线)
  • 底线

内容区:底线和顶线包裹的区域,即下图深灰色背景区域

image-20250226163611742

其实基线之间的距离 = 顶线间距离 = 底线间距离 = 中线间距离

line-height: [值]

注意1: 行高 = 上边距 + 下边距 + 字体大小

  • 上下边距是相等的, 此处字体大小是 16px, 行高 40px, 上下边距就分别是 12px

【案例】

<style>.line-height .one {line-height: 40px;font-size: 16px;}
</style><div class="line-height"><div>上一行</div><div class="one">中间行</div><div>下一行</div>
</div>

效果如下:

image-20250226163826162

注意2: 行高也可以取 normal 等值

  • 这个取决于浏览器的实现. chrome 上 normal 为 21 px

注意3: 行高 = 元素高度, 就可以实现文字居中对齐

<style>.line-height .two {height: 100px;line-height: 100px;}
</style><div class="line-height"><div class="two">文本垂直居中</div>
</div>

效果如下:

image-20250226164217586

3. 背景属性

属性描述
background-color背景色
background-image背景图
background-repeat背景图平铺方式
background-position背景图位置
background-size背景图尺寸
background-attachment背景图固定
background背景图复合属性
3.1 背景颜色
background-color: [指定颜色]

默认是 transparent(透明)的,可以通过设置颜色的方式修改

<style>body {background-color: #f3f3f3;}.bgc .one {background-color: red;}.bgc .two {background-color: #0f0;}.bgc .three {/* 背景透明 */background-color: transparent;}
</style><div class="bgc"><div class="one">红色背景</div><div class="two">绿色背景</div><div class="three">透明背景</div>
</div>
3.2 背景图片
background-image: url(...);

比 image 更方便控制位置(图片在盒子中的位置)

注意:

  1. url 不要遗漏.
  2. url 可以是绝对路径,也可以是相对路径
  3. url 上可以加引号, 也可以不加.

【案例】

<style>.bgi .one {background-image: url(rose.jpg);height: 300px;}
</style><div class="bgi"><div class="one">背景图片</div>
</div>
3.3 背景平铺

平铺:就是盒子太大,但是图片只有一张,那么就会复制图片填充这个盒子(默认平铺效果)

background-repeat: [平铺方式]

重要取值:

  • repeat: 平铺
  • no-repeat: 不平铺,只显示一张背景图片,显示在盒子的左上角
  • repeat-x: 水平平铺
  • repeat-y: 垂直平铺

默认是 repeat. 背景颜色和背景图片可以同时存在. 背景图片在背景颜色的上方.

【案例】

image-20250226204325806

3.4 背景位置

由于背景图默认是在左上角的,但是我们可以通过这个来调整背景图的位置

background-position: x, y;

作用:修改图片的位置,参数有三种风格:

  1. 方位名词: (top, left, right, bottom)
  2. 精确单位: 坐标或者百分比(以左上角为原点) ,数字 +px(正负都可以)
  3. 混合单位: 同时包含方位名词和精确单位
<style>.bgp .one {background-image: url(rose.jpg);height: 500px;background-repeat: no-repeat;background-color: purple;background-position: center bottom;background-position: 50px -100px;background-position: 50px center;}
</style><div class="bgp"><div class="one">背景居中</div>
</div>

注意

  • 如果参数的两个值都是方位名词, 则前后顺序无关. (top left 和 left top 等效)
  • 如果只指定了一个方位名词, 则第二个默认居中. (left 则意味着水平居中, top 意味着垂直居中. )
  • 如果参数是精确值, 则的的第一个肯定是 x , 第二个肯定是 y. (100 200 意味着 x 为 100, y 为 200)
  • 如果参数是精确值, 且只给了一个数值, 则该数值一定是 x 坐标, 另一个默认垂直居中. 如果参数是混合单位, 则第一个值一定为 x, 第二个值为 y 坐标. (100 center 表示横坐标为 100, 垂 直居中)

关于坐标系

计算机中的平面坐标系, 一般是左手坐标系(和高中数学上常用的右手系不一样. y轴是往下指的).

image-20250226180412081

3.5 背景尺寸
background-size: length|percentage|cover|contain;
  • 可以填具体的数值: 如 40px 60px 表示宽度为 40px, 高度为 60px
  • 也可以填百分比: 按照父元素的尺寸设置.
  • cover: 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无 法显示在背景定位区域中。
  • 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域.
<style>.bgs .one {width: 500px;height: 300px;background-image: url(rose.jpg);background-repeat: no-repeat;background-position: center;background-size: contain;}
</style><div class="bgs"><div class="one">背景尺寸</div>
</div>

注意体会 containcover 的区别. 当元素为矩形(不是正方形) 时, 区别是很明显的.

contain:

image-20250226180625549

cover:

image-20250226180657902

结论:

  • cover:用于等比放大背景图以完全覆盖背景区,可能背景图片部分看不到
  • contain:用于等比缩小背景图(背景图需要大于被放的块,否则背景图任然会被放大)
  • 百分比:根据盒子尺寸计算图片大小
3.6 背景固定
background-attachment: fixed;
  • 背景不会随着元素的内容滚动
3.7 背景复合属性

属性名:background

属性值:背景色 背景图 平铺方式 背景图位置/缩放 背景图固定 (空格隔开各个属性值,不区分顺序)

如下:

image-20250226211232623

4. 圆角矩形

通过 border-radius 使边框带圆角效果.

4.1 基本用法
border-radius: length;

length 是内切圆的半径. 数值越大, 弧线越强烈

image-20250226181357647

如下:

<style>div{width: 200px;height: 100px;border: 2px solid red;border-radius: 10px;}
</style><div>IsLand 1314</div>
  • 上面代码中的 border 在下面的盒模型那里会说的,可以慢慢看
4.2 生成圆形
div{width: 100px;height: 150px;border: 2px solid red;border-radius: 50%;
}
4.3 生成矩形

让 border-radius 的值为矩形高度的一半即可

div{width: 100px;height: 50px;border: 2px solid red;border-radius: 50px;
}

效果如下:

image-20250226182845906

4.4 展开写法

border-radius 是一个复合写法,实际上可以针对四个角分别设置

border-radius:2em;

等价于

border-top-left-radius:2em;
border-top-right-radius:2em:
border-bottom-right-radius:2em:border-bottom-left-radius:2em;
border-radius:10px 20px30px 40px;

等价于(按照顺时针排列)

border-top-left-radius:10px:
border-top-right-radius:20px:
border-bottom-right-radius:30px:
border-bottom-left-radius:40px;

5. 查看 CSS 属性 -Chrome 调试工具

一般都是用 Chrome 浏览器进行调试,用其他浏览器调试有时候会出现效果与代码不符的情况

打开 Chrome 调试工具的方法

  • 直接按 F12 键
  • 鼠标右键页面 => 检查元素

标签页含义

  • elements查看标签结构
  • console 查看控制台
  • source 查看源码+断点调试
  • network 查看前后端交互过程
  • application 查看浏览器提供的一些扩展功能(本地存储等)
  • Performance, Memory, Security, Lighthouse 暂时不使用, 先不深究

elements 标签页使用

  • ctrl+ 滚轮进行缩放,ctrl+0 恢复原始大小,
  • 使用 左上角 箭头选中元素
  • 右侧可以查看当前元素的属性,包括引入的类
  • 右侧可以修改选中元素的 css 属性,例如颜色:可以点击颜色图标,弹出颜色选择器,修改颜色。例如字体大小可以使用方向键来微调数值。注意:此处的修改不会影响代码,刷新就还原了
  • 如果 CSS 样式写错了,也会在这里有提示 !!!

image-20250226183511955

6. 元素的显示模式

 网页中的 HTML 标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。其中元素显示模式就是元素(标签)以什么方式进行显示,比如

自己占一行,比如一行可以放多个 <span>等。

  • HTML 元素一般分为块元素和行内元素两种类型。有的资料也有行内块元素的说法。
6.1 块级元素
  • h1 - h6、p、 div、 ul、 ol、 li …,其中 其中
    标签是最典型的 块元素

特点:

  • 独占一行
  • 高度, 宽度, 内外边距, 行高都可以控制.
  • 宽度默认是父级元素宽度的 100% (和父元素一样宽)
  • 是一个容器(盒子), 里面可以放 行内块级 元素
<style>
.demo1 .parent {width: 500px;height: 500px;background-color: green;
}
.demo1 .child {/* 不写 width, 默认和父元素一样宽 *//* 不写 height, 默认为 0 (看不到了) */height: 200px;background-color: red;
}
</style><div class="demo1"><div class="parent"><div class="child">child1</div><div class="child">child2</div></div>
</div>

注意:

  • 文字类的元素内不能使用块级元素
  • p 标签主要用于存放文字, 内部不能放块级元素, 尤其是 div
  • 同理, <h1>~<h6> 等都是文字类块级标签,里面也不能放其他块级元素

比如:

<body><p><div>蛤蛤</div></p>
</body>
  • 从上面的示例可以看到当把块级元素 <div> 放到文字内的元素 <p> 中时,浏览器解析时会把它单独拿出来,同时设置的样式也不能生效。
6.2 行内元素/内联元素

常见的元素:

  • a、strong、b、em、i、del、s、ins、u、span,其中 <span> 标签是最典型的行内元素。有的地方也将行内元素称为内联元素。

特点:

  • 不独占一行,一行可以显示多个
  • 设置高度、宽度、行高无效
  • 左右外边距有效(上下无效),内边距 有效,
  • 默认宽度就是本身的内容
  • 行内元素只能容纳文本和其他行内元素,不能放块级元素
<style>.demo2 span {width: 200px;height: 200px;background-color: red;}
</style><div class="demo2"><span>child1</span><span>child2</span>
</div>

注意:

  • a 标签中不能再放a 标签(虽然 chrome 不报错, 但是最好不要这么做).
  • 特殊情况下:a标签里可以放块级元素,但是更建议先把 a 转换成块级元素.

行内元素和块级元素的区别

  • 块级元素独占一行,行内元素不独占一行
  • 块级元素可以设置宽高,行内元素不能设置宽高,
  • 块级元素四个方向都能设置内外边距,行内元素垂直方向不能设置
6.3 行内块元素

在行内元素中有几个特殊的标签例如 <img/><input/><td> ,它们同时具有块元素和行内元素的特点。 称它们为行内块元素。

行内块元素特点

  1. 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。一行可以显示多个(行内元素特点)。

  2. 默认宽度就是它本身内容的宽度(行内元素特点)。

  3. 高度,行高、外边距以及内边距都可以控制(块级元素特点)。

【案例】

<head><style>img{width: 50px; height: 50px;}</style>
</head><!-- 1、一行可以设置多个 -->
<!-- 2.可以设置宽高 -->
<body><img src="./走路.gif" alt="别看了"><img src="./走路.gif" alt="别看了">
</body>

效果如下:

image-20250226195036366

6.5 元素显示模式总结
元素模式元素排列设置样式默认宽度包含
块级元素一行只能一个可以设置宽高父级容器的100%可包含任何标签
行内元素一行可以多个不能设置宽高本身内容的宽度可包含文本和行内元素
行内块元素一行可以多个可以设置宽高本身内容的宽度-
6.4 改变显示模式

 特殊情况下,我们需要元素模式的转换,简单理解: 一个模式的元素需要另外一种模式的特性。比如想要增加链接 <a> 的触发范围

使用 display 属性可以修改元素的显示模式,可以把 div 等变成行内元素,也可以把 a,span 等变成块级元素

  • display:block 改成块级元素[常用]
  • display:in1ine 改成行内元素[很少用]
  • display:inline-block 改成行内块元素

【案例】

<style>div{width:300px;height:300px;background-color: pink;display: inline;}
</style><div>111</div>
<div>222</div>

★,°:.☆( ̄▽ ̄)/$:.°★ 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,同时我还会继续更新关于【Linux】的内容,请持续关注我 !!

在这里插入图片描述

相关文章:

CSS 入门指南(一):基本概念 选择器 常用元素属性

一、初识 CSS 1, CSS 定义 层叠样式表(Cascading Style Sheets&#xff0c;缩写为 CSS)&#xff0c;是一种 样式表 语言&#xff0c;用来描述 HTML 文档的呈现&#xff08;美化内容&#xff09; CSS 能够对网页中元素位置的排版进行 像素级 精确控制&#xff0c;实现美化页面…...

c_cpp_properties.json等三个文件解释

不建议太小白的人看啊 在 Visual Studio Code 中使用 C 语言进行编程时&#xff0c;通常会看到一些特定的配置文件。这些文件是用来帮助你配置开发环境、调试程序等 就是这三个文件 首先是c_cpp_properties.json&#xff1a; 这是 Visual Studio Code 配置 C/C 开发环境的文件。…...

G-Star 公益行起航,挥动开源技术点亮公益!

公益组织&#xff0c;一直是社会温暖的传递者&#xff0c;但在数字化浪潮中&#xff0c;也面临着诸多比大众想象中复杂的挑战&#xff1a;项目管理如何更高效&#xff1f;志愿者管理又该如何创新&#xff1f;宣传推广怎么才能更有影响力&#xff1f;内部管理和技术支持又该如何…...

Jetson Xavier NX安装CUDA加速的OpenCV

我们使用SDKManager刷机完成后&#xff0c;使用jtop查看&#xff0c;发现OpenCV 是不带CUDA加速的&#xff0c;因此&#xff0c;我们需要安装CUDA加速的OpenCV&#xff0c;这样后续在使用的时候速度会快很多。 首先我们先卸载默认OpenCV sudo apt purge libopencv* -y sudo …...

用android studio模拟器,模拟安卓手机访问网页,使用Chrome 开发者工具查看控制台信息

web 网页项目在安卓手机打开时出现问题&#xff0c;想要查看控制台调试信息。记录一下使用android studio 模拟器访问的方式。 步骤如下&#xff1a; 1.安装android studio&#xff0c;新增虚拟设备&#xff08;VDM- virtual device manager) 点击Virtual Device Manager后会…...

基于Transformer的医学文本分类:从BERT到BioBERT

随着自然语言处理(NLP)技术的快速发展,Transformer模型在文本分类、情感分析、机器翻译等任务中取得了显著成果。在医学领域,文本数据(如电子病历、医学文献、临床报告)具有高度的专业性和复杂性,传统的NLP方法往往难以处理。Transformer模型,尤其是BERT及其变体,通过…...

【Python】Django 中的算法应用与实现

Django 中的算法应用与实现 在 Django 开发中&#xff0c;算法的应用可以极大地扩展 Web 应用的功能和性能。从简单的数据处理到复杂的机器学习模型&#xff0c;Django 都可以作为一个强大的后端框架来支持这些算法的实现。本文将介绍几种常见的算法及其在 Django 中的使用方法…...

vs code配置 c/C++

1、下载VSCode Visual Studio Code - Code Editing. Redefined 安装目录可改 勾选创建桌面快捷方式 安装即可 2、汉化VSCode 点击确定 下载MinGW 由于vsCode 只是一个编辑器&#xff0c;他没有自带编译器&#xff0c;所以需要下载一个编译器"MinGW". https://…...

YOLO11 环境安装

1.安装Anaconda/Miniconda 在Ubuntu中安装Miniconda Anaconda/Miniconda pip 配置清华镜像源 Anaconda/Miniconda 基本操作命令 2.创建python虚拟环境 # 创建 conda create -n yolo11_env python3.12# 激活 conda activate yolo11_env 3.安装pytorch # Pytorch https://…...

BLEU评估指标

一、介绍 用于评估模型生成的句子和实际句子差异的指标&#xff0c;取值在[0,1]&#xff0c;匹配度高就距离1近&#xff0c;反之距离0近。这个指标计算代价小&#xff0c;容易理解&#xff0c;与语言无关&#xff0c;与人类评价结果高度相关。 BLEU主要基于n-gram匹配&#x…...

学习路之TP6 --重写vendor目录下的文件(新建命令)

[TOC](学习路之TP6 --重写vendor目录下的文件(新建命令)) 一、新建命令文件 php think make:command CustomWorker二、修改 复制vendor\topthink\think-worker\src\command\Server.php 内容到app\command\CustomWorker.php 修改继承类&#xff1a;class CustomWorker exten…...

[Linux] 3588开发准备工作

背景需求 在3588上开发软件系统&#xff0c;用于视频流读取&#xff0c;处理&#xff0c;推流等操作。一般来说&#xff0c;会先买对应型号的开发板进行开发测试。同步制作硬件&#xff0c;等到硬件回来之后&#xff0c;可将代码进行烧录到嵌入式板端&#xff0c;能够执行相应…...

小程序网络大文件缓存方案

分享一个小程序网络大图加载慢的解决方案 用到的相关api getSavedFileList 获取已保存的文件列表&#xff1b;getStorageSync 获取本地缓存&#xff1b;downloadFile 下载网络图片&#xff1b;saveFile 保存文件到本地&#xff1b;setStorage 将数据储存到小程序本地缓存&…...

在 Windows 上快速部署 OpenManus:从安装到运行

在当今快速发展的 AI 领域&#xff0c;OpenManus 作为一个强大的开源工具&#xff0c;为开发者提供了便捷的 AI 应用开发体验。本文将详细介绍如何在 Windows 系统上安装并运行 OpenManus&#xff0c;帮助你快速搭建一个本地的 AI 开发环境。 一、安装 Anaconda Anaconda 是一…...

Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决

前言 在将 Spring Boot 项目升级至 3.3.4 版本后&#xff0c;遇到 Logback 配置的兼容性问题。本文将详细描述该问题的错误信息、原因分析&#xff0c;并提供调整日志回滚策略的解决方案。 错误描述 这是SpringBoot 3.3.3版本之前的回滚策略的配置 <!-- 日志记录器的滚动…...

快速集成1688商品API:10分钟实现跨境选品数据自动化

要快速集成 1688 商品 API 以实现跨境选品数据自动化&#xff0c;可参考以下步骤&#xff1a; 注册并申请 API 权限&#xff1a;注册账号创建应用并申请所需的 API 权限&#xff0c;如商品搜索、筛选、获取详情等相关权限。获取 API Key 和 Secret&#xff1a;在应用管理页面获…...

21天 - 说说 TCP 的四次挥手?TCP 的粘包和拆包能说说吗?说说 TCP 拥塞控制的步骤?

说说 TCP 的四次挥手&#xff1f; TCP 协议是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;它通过著名的 “三次握手” 来建立连接。相对地&#xff0c;TCP 协议通过四次挥手来断开连接。以下是四次挥手的详细过程&#xff1a; 第一次挥手&#xff08;Clien…...

LeetCode:93. 复原 IP 地址(DFS Java)

目录 93. 复原 IP 地址 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 93. 复原 IP 地址 题目描述&#xff1a; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xf…...

Flutter_学习记录_device_info_plus 插件获取设备信息

引入三方库device_info_plus导入头文件 import package:device_info_plus/device_info_plus.dart;获取设备信息的主要代码 DeviceInfoPlugin deviceInfoPlugin DeviceInfoPlugin(); BaseDeviceInfo deviceInfo await deviceInfoPlugin.deviceInfo;完整案例 import package…...

详解CISC与RISC及其区别

CISC&#xff08;Complex Instruction Set Computing&#xff0c;复杂指令集计算机&#xff09;和RISC&#xff08;Reduced Instruction Set Computing&#xff0c;精简指令集计算机&#xff09;是两种不同的计算机架构理念&#xff0c;主要区别在于指令集的设计和处理方式&…...

偶然发现了 setTimeout 的隐藏彩蛋

最近在看《JavaScript高级程序设计&#xff08;第4版&#xff09;》&#xff0c;运行书中的一个代码示例时&#xff0c;偶然发现了 setTimeout 的一些之前没注意到的特性&#xff0c;觉得挺有意思的&#xff0c;就来记录一下。 书中代码如下&#xff1a; for (var i 0; i &l…...

zerotier搭建免费moon服务器

&#x1f31f; 前言 ZeroTier是一种基于P2P的虚拟组网工具&#xff0c;通过搭建‌Moon服务器‌可大幅提升跨运营商/跨国节点的连接质量。本文使用云服务演示部署流程。 &#x1f4cb; 准备工作 ‌注册三丰云账号‌ ‌创建CentOS 8.5实例‌ &#xff08;这里选择centos8以上&a…...

Unity Timeline 扩展

这里认为大家已经会timeline的基本使用了&#xff0c;只介绍怎么自定义扩展。 第一步.自定义Track 首先要自定义一条轨道。剪辑是要在轨道里跑的&#xff0c;系统自带的轨道我们加不了自定义剪辑&#xff0c;得新建自己用的。这个很简单。 [TrackClipType(typeof(TransformTw…...

HarmonyOS第21天:解锁分布式技术,开启跨设备协同新体验

一、HarmonyOS 分布式技术&#xff1a;开启万物互联新时代 在物联网蓬勃发展的今天&#xff0c;设备之间的互联互通不再是遥不可及的梦想&#xff0c;而是真切融入日常生活的现实。从智能家居设备的联动控制&#xff0c;到智能办公场景中的高效协作&#xff0c;再到智能出行中的…...

BUUCTF Pwn [ZJCTF 2019]EasyHeap unlink+freehook做法

checksec exeinfo &#xff1a; IDA64打开&#xff1a; delete_heap函数已经将指针清零 无UAF edit_heap允许自己输入读取字节 存在堆溢出 同时 存储的指针位于bss段 那接下来就想到unlink方法&#xff1a; 图示&#xff1a; 后续修改0x6020E0的位置为freehook 再修改一次 让其…...

【解决方案】RAGFlow部分问题清单及解决方案备忘1

一、长时间显示&#xff1a;Task is queued 多半是因为模型确实在队列中排队的原因&#xff0c;要么是内存一直在被占用中&#xff0c;要么是CPU或GPU一直在被占用中&#xff0c;可以首先检查硬件利用率&#xff1a; 如果是内存导致的队列缓慢&#xff0c;可以将.env文件中的M…...

Linux笔记---文件系统硬件部分

1. 文件系统 文件系统是操作系统用于明确存储设备&#xff08;常见的是磁盘&#xff0c;也有基于NAND Flash的固态硬盘&#xff09;或分区上的文件的方法和数据结构&#xff0c;即在存储设备上组织文件的方法。 1.1 基本组成 索引节点&#xff08;inode&#xff09;&#xff…...

低成本抗衡DeepSeek-R1!QwQ-32B本地部署教程:消费级硬件可部署

QwQ-32B是阿里通义千问团队在3月6日发布的开源大模型&#xff0c;这款仅有320亿参数的模型&#xff0c;在数学、代码、通用能力等核心场景里&#xff0c;几乎跟满血版DeepSeek-R1&#xff08;6710亿参数&#xff09;不相上下。可以说实现了开源领域的降维打击。 参数规模与性能…...

二叉树中堆的实现

1 堆的声明和定义 typedef int HPDateType; typedef struct Heap {HPDateType* arr;int size;int capcity; }HP; 与顺序表相似&#xff0c;我们需要一个数组&#xff0c;有效空间大小&#xff0c;有效元素个数 2 堆的初始化 void HPInit(HP*php) {assert(php);php->arr …...

概率论的基本知识

逆概率还不懂&#xff0c;改天再想想。 联合概率 联合概率&#xff08;Joint Probability&#xff09; 是概率论中的一个重要概念&#xff0c;用于描述多个随机变量同时取某些值的概率。联合概率可以帮助我们理解多个变量之间的关系。...

LVDS(Low Voltage Differential Signaling)电平详解

一、LVDS的定义与核心特性 LVDS&#xff08;低压差分信号&#xff09;是一种 低功耗、高速、抗干扰 的差分信号传输技术&#xff0c;通过一对互补的电压信号&#xff08;正负端差值&#xff09;传递数据。其核心特性包括&#xff1a; 电气特性 电压摆幅&#xff1a;差分电压约…...

2024年第十五届蓝桥杯软件C/C++大学A组——五子棋对弈

蓝桥杯原题&#xff1a; 题目描述&#xff1a; “在五子棋的对弈中&#xff0c;友谊的小船说翻就翻&#xff1f; ” 不&#xff01;对小蓝和小桥来说&#xff0c;五子棋不仅是棋盘上的较量&#xff0c;更是心与心之间的沟通。这两位挚友秉承着 “ 友谊第一&#xff0c;比赛第二…...

OpenRewrite配方之import语句的顺序——org.openrewrite.java.OrderImports

org.openrewrite.java.OrderImports 是 OpenRewrite 工具库中的一个重要规则(Recipe),专为 Java 项目设计,用于自动化调整 import 语句的顺序,使其符合预定义的代码规范。从而提高代码的一致性和可读性。 核心功能 排序规则: 静态导入优先:默认将静态导入(import stati…...

数字电子技术基础(二十八)——TTL门电路的静态功耗和动态功耗

1 静态功耗 门电路的工作需要直流电压源的支持&#xff0c;无论在模拟电路还是在数字电路中&#xff0c;只有在外加直流电源的作用下&#xff0c;半导体二极管具有单向导电性&#xff0c;晶体管的放大能力以及开关特性才能体现出来芯片的电源端正负级。芯片的电源端正负极如果…...

RISC-V汇编学习(四)—— RISCV QEMU平台搭建(基于芯来平台)

RISCV汇编学习系列&#xff1a; RISC-V汇编学习&#xff08;一&#xff09;—— 基础认识 RISC-V汇编学习&#xff08;二&#xff09;—— 汇编语法 RISC-V汇编学习&#xff08;三&#xff09;—— RV指令集 RISC-V汇编学习&#xff08;四&#xff09;—— RISCV QEMU平台搭建…...

链表的定义、节点结构、基本操作(C++)

1. 链表的基本概念 链表是一种动态数据结构&#xff0c;它的元素&#xff08;节点&#xff09;在内存中不一定是连续存储的。每个节点通过指针连接到下一个节点&#xff0c;形成一个链式结构。链表分为单向链表、双向链表和循环链表等&#xff0c;这里主要介绍单向链表。 2. …...

deepseek使用记录21——脑图记录

我们有比前人更先进的工具&#xff0c;为何不利用起来呢&#xff1f; 工作的时候&#xff0c;问问自己&#xff0c;这个问题是理论问题&#xff1f;还是实践问题&#xff1f;如何在系统中劈开一条可实践路径&#xff1f;系统中的缝&#xff0c;系统中的力量&#xff08;人先进…...

[多线程]基于阻塞队列(Blocking Queue)的生产消费者模型的实现

标题&#xff1a;[多线程]基于阻塞队列(Blocking Queue)的生产消费者模型的实现 水墨不写bug 文章目录 一、生产者消费者模型特点&#xff1a;二、实现2.1详细解释1. 成员变量2. 构造函数3. Isfull 和 Isempty4. Push 函数5. Pop 函数6. 析构函数7. GetSize 函数 三、总结与多线…...

【时时三省】(C语言基础)输入输出的概念

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 有关数据输入输出的概念 从前面的程序中可以看到&#xff1a;几乎每一个C程序都包含输入输出。因为要进行运算&#xff0c;就必须给出数据&#xff0c;而运算的结果当然需要输出&#xff0c…...

基于ragflow中deepdoc对pdf文档的rag系统

基于ragflow中deepdoc对pdf文档的rag系统 一、安装 conda环境安装到指定的路径 conda create 包名/环境的名字 rag就是包的名字&#xff0c;ragflow就是环境名&#xff1b; 怎样激活环境&#xff1f;–我是在百度飞桨上面跑的 conda activate /home/aistudio/rag/ragflow …...

基于WebRTC技术的EasyRTC嵌入式音视频SDK:多平台兼容与性能优化

在当今数字化、智能化的时代背景下&#xff0c;实时音视频通信技术已成为众多领域不可或缺的关键技术。基于WebRTC技术的EasyRTC嵌入式音视频SDK&#xff0c;凭借其在ARM、Linux、Windows、安卓、iOS等多平台上的兼容性&#xff0c;为开发者提供了强大的工具&#xff0c;推动了…...

Linux驱动开发实战(四):设备树点RGB灯

Linux驱动开发实战&#xff08;四&#xff09;&#xff1a;设备树点RGB灯 文章目录 Linux驱动开发实战&#xff08;四&#xff09;&#xff1a;设备树点RGB灯前言一、驱动实现1.1 驱动设计思路1.2 关键数据结构1.3 字符设备操作函数1.4 平台驱动探测函数1.5 匹配表和平台驱动结…...

大模型架构记录5-向量数据库

一 倒排索引、KNN、PQ 1.1 基础版本 query -> requery 对问题做处理&#xff0c;处理上下文 对query 做 refined query 1.2 向量数据库 二 搜索逻辑 2.1 knn 2.2 近似KNN 先和N个空间的均值比较再和空间内部的所有点比较&#xff0c;计算最近值。 优化一&#xff1a; …...

【 Fail2ban 使用教程】

Fail2ban 使用教程 1. 安装 Fail2ban2. 配置 Fail2ban2.1 创建 jail.local 文件2.2 基本配置参数说明2.3 配置具体服务的监控规则2.3.1 SSH 服务2.3.2 Apache 服务 3. 启动和管理 Fail2ban3.1 启动 Fail2ban 服务3.2 设置 Fail2ban 开机自启3.3 检查 Fail2ban 服务状态3.4 重新…...

Django系列教程(8)——函数视图及通用类视图

目录 什么是视图(View)及其工作原理 接近现实的函数视图 更复杂的案例: 视图处理用户提交的数据 基于函数的视图和基于类的视图 Django通用类视图 a. ListView b. DetailView c. CreateView d. UpdateView e. FormView f. DeleteView 小结 Django的视图(view)是处理…...

【C#学习笔记04】C语言格式化输出

引言 ​​printf()​​函数不仅可以将数据输出到控制台&#xff0c;还可以通过格式化字符串灵活地控制输出的格式。​​printf()​​​函数的使用规则&#xff0c;包括标志说明、字段宽度、转换精度、长度修饰、转换说明、转义字符。 1. ​​printf()​​函数概述 ​​printf…...

九点标定和十二点标定的区别

九点标定和十二点标定是机器视觉中常用的两种手眼标定方法&#xff0c;用于建立图像坐标系与机械坐标系之间的映射关系。它们的核心区别在于标定点的数量、变换模型和适用场景。以下是详细对比&#xff1a; 1. 九点标定 特点 标定点数量&#xff1a;9 个点&#xff0c;通常排…...

qt+opengl 播放yuv视频

一、实现效果 二、pro文件 Qt widgets opengl 三、主要代码 #include "glwidget.h"GLWidget::GLWidget(QWidget *parent) : QOpenGLWidget(parent) {connect(&m_timer, &QTimer::timeout, this,[&](){this->update();});m_timer.start(1000/33); }v…...

【揭秘测绘艺术】从基础到法律,绘制地球的智慧蓝图

在人类探索与塑造世界的征途中&#xff0c;有一门古老而又现代的科学默默发挥着基石作用——测绘。它不仅仅是地图的绘制&#xff0c;更是对地球空间信息的精准捕捉与智慧应用。今天&#xff0c;让我们一起走进测绘的世界&#xff0c;解码“测绘”与“基础测绘”的内涵&#xf…...

基于DeepSeek×MWORKS 2025a的ROM Builder自动化降阶实战

一、引言 当前&#xff0c;工业仿真领域正经历着前所未有的「智能焦虑」——当自动驾驶算法已能理解城市路网&#xff0c;当大模型开始设计蛋白质结构&#xff0c;这个驱动大国重器研发的核心领域&#xff0c;却仍在与千万级方程组成的庞杂模型艰难博弈。传统仿真降阶如同在数…...