CSS 02

1.复合选择器

(1.1)后代选择器

代码:

<!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里的span颜色是红色 *//* 后代选择器会选中所有后代,包括儿子孙子等等 */div span {color: red;}</style>
</head>
<body><span>span标签</span><div><span>这是div的儿子span</span><p><span>这是div的孙子span</span><p><span>这是div的重孙子span</span></p></p><span>这是div的第二个儿子span</span></div>
</body>
</html>

后代选择器会选择所有满足条件的后代,比如上面的代码就是找到嵌套在div标签里的所有span标签把它们变成红色

效果:

发现确实是所有div里的后代span都变红色了

(1.2)子代选择器

与上面的后代选择器不同,只想选中儿子元素而不想选其他后代元素

代码:

<!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的儿子span变红 */div > span {color: red;}</style>
</head>
<body><div><span>儿子span</span><p><span>孙子span</span></p></div>
</body>
</html>

效果:

(1.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,p,span,em,strong {color: red;}</style>
</head>
<body><div>div标签</div><p>p标签</p><span>span标签</span><em>em标签</em><strong>strong标签</strong>
</body>
</html>

效果:

如果我们调整一下并集选择器的顺序:

    <style>div,p,span,strongem{color: red;}</style>

我们发现错误的顺序的标签没有变色

(1.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>/* 第一个p标签颜色是红色 *//* 既是p标签又有box类 */p.box {color: red;}p {color: aqua;}div.box {color: green;}</style>
</head>
<body><p class="box"> p标签,使用了类选择器box </p><p> p标签 </p><div class="box"> div标签,使用了类选择器box </div>
</body>
</html>

效果:

(1.5)伪类选择器

作用:让鼠标停在文字上时,文字变色,常用于链接

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>伪类选择器</title><style>/* 任何标签都可以设置鼠标悬停状态 *//* 通过标签选择器选择 */a:hover {color: green;}/* 通过类选择器选择 */.box:hover {color: red;}</style>
</head>
<body><a href="#">a标签,超链接</a><div class="box">div标签</div>
</body>
</html>

效果

鼠标停在超链接时,超链接变绿了

(1.5.1)伪类-超链接

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>伪类超链接</title><style>/* a:link { color: red;}a:visited {color: green;}a:hover {color: blue;}a:active {color: orange;}  *//* 工作中,一个a标签选择器设置超链接样式,hover状态特殊设置 */a {color: aqua;}a:hover {color: yellowgreen;}</style>
</head>
<body><a href="#"> a标签,测试伪类</a>
</body>
</html>

工作中一般仅设置整体的链接样式,以及鼠标悬停的样式即可

2.CSS特性

(2.1)继承性

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>继承性</title><style>body {font-size: 30px;color: green;font-weight: 700;}</style>
</head>
<body><div>div标签</div><p>p标签</p><span>span标签</span><!-- 如果标签自己有样式,则生效自己的样式,不继承 --><a href="#">a标签</a><h1>h1标题</h1>
</body>
</html>

直接将想要设置的样式写在body里面,可以让全部标签生效,但是如果标签本身有自己的样式,则不会继承

效果:

比如a标签自带蓝色,他就不会继承颜色,只会继承字体大小和粗细等,h1标签自带大小,就不会继承大小,而是继承粗细和颜色等

(2.2)层叠性

<!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 {color: red;font-weight: 700;}div {color: green;font-size: 30px;}</style>
</head>
<body><div>div标签</div>
</body>
</html>

如果在代码中给相同的标签前后都设置了属性,那么在后面的相同属性会覆盖,不同属性会叠加

最终效果:

后面的绿色覆盖了前面的红色,而不同的属性:字体和粗细则都叠加应用在了div标签上

(2.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 {color: green;}/* !important 提高优先级到最高,慎用 */* {color: red !important;}.box {color: blue;}#test {color: orange;}</style>
</head>
<body><div class="box" id="test" style="color: purple;">div标签</div>
</body>
</html>

优先级越低,则选择器能选中的范围越大

行内样式就是直接在div标签这一行写style

!important是将该选择器优先级设置到最大,如上面的代码,将本是最低优先级的通配符选择器设置为最大,所以div标签变成了红色

(2.3.1)优先级-叠加计算

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>优先级叠加计算</title><style>/* (行内样式,id选择器个数,类选择器个数,标签选择器个数) *//* (0,2,0,0) */#father #son {color: blue;}/* (0,1,1,1) */#father p .c2 {color: black;}/* (0,0,2,2) */div .c1 p .c2 {color: red;}/* 虽然有!important优先级最高,但是对father生效,son是继承,优先级最低 */#father {color: green !important;}/* 对div father c1生效,son是继承,优先级最低 */div #father .c1 {color: yellow;}</style>
</head>
<body><div id="father" class="c1"><p id="son" class="c2">这行文本是什么颜色</p></div>
</body>
</html>

先看有没有!important和继承,然后看公式判断优先级,公式类似于字典序,先看行内样式,如果数量一样就比较id选择器个数,还是一样就继续比较类选择器以及标签选择器个数,多的优先级就大

比如上面的代码,可以发现蓝色那一条的id选择器数量是2,其他的都是1,所以蓝色优先级最大

效果:


(2.4)Emmet写法

3.背景属性

(3.1)背景图

<!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>div {width: 400px;height: 400px;/* 背景图默认效果平铺 */background-image: url(./image/diagram.png);}</style>
</head>
<body><div>div标签</div>
</body>
</html>

效果:

发现没显示完全,因为背景图是平铺,如果你设置的标签尺寸小,图片就只会显示一部分,尺寸大,图片就会复制多份填充


(3.2)背景图平铺方式

    <style>div {width: 400px;height: 400px;/* 背景图默认效果平铺 */background-color: pink;background-image: url(./image/3.jpg);}</style>

我们同时设置背景颜色和背景图

发现背景颜色被背景图覆盖了,这是因为背景图默认平铺

    <style>div {width: 400px;height: 400px;/* 背景图默认效果平铺 */background-color: pink;background-image: url(./image/3.jpg);background-repeat: no-repeat;}</style>

 设置不平铺,则按图片原尺寸和数量输出,只有左上角一张背景图

设置向x向y平铺则会沿这两个轴进行平铺

(3.3)背景图位置

代码:

<!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>div {width: 400px;height: 400px;/* 背景图默认效果平铺 */background-color: pink;background-image: url(./image/3.jpg);background-repeat: no-repeat;/* 0 0表示左上角,是默认 *//* background-position: left top;这也是左上角 *//* 水平方向:正数向左移动,负数向右移动 *//* background-position: 50px 0; *//* background-position: -50px 0; *//* 垂直方向:正数向下,负数向上 *//* background-position: 0 100px; *//* background-position: 0 -100px; *//* background-position: 50px center; *//* 特殊写法 *//* background-position: bottom left; *//* 关键字只写一个,另一个方式默认居中 *//* background-position: bottom; *//* 只写一个数字表示水平方向,垂直方向居中 */background-position: 50px;}</style>
</head>
<body><div>div标签</div>
</body>
</html>

按照代码进行多次实验即可看到背景图位置变化

(3.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>div {width: 500px;height: 300px;/* 背景图默认效果平铺 */background-color: pink;background-image: url(./image/3.jpg);background-repeat: no-repeat;/* contain:如果图的宽或高跟盒子尺寸相等则停止缩放,可能导致盒子有露白 *//* background-size: contain; *//* cover:图片完全覆盖盒子,可能导致盒子显示不全 *//* background-size: cover; *//* 100%表示图片宽度和盒子宽度一样,图片高度按照图片比例等比缩放 */background-size: 100%;}</style>
</head>
<body><div>div标签</div>
</body>
</html>

效果:

 contain:如果图的宽或高跟盒子尺寸相等则停止缩放,可能导致盒子有露白

cover:图片完全覆盖盒子,可能导致盒子显示不全

(3.5)背景图固定

代码:

<!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>body {background-image: url(./image/6.jpg);background-repeat: no-repeat;background-position: center top;/* 实现背景图固定 */background-attachment: fixed;}</style>
</head>
<body><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p><p>测试文字,撑开body,让浏览器有滚动条</p>
</body>
</html>

发现之后再滚动,背景图位置始终不变

(3.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>div {width: 400px;height: 400px;/* background: pink url(./image/3.jpg) no-repeat center bottom/cover; */background: pink url(./image/3.jpg) no-repeat center bottom/contain;}</style>
</head>
<body><div>div标签</div>
</body>
</html>

可以实现上面的背景图的所有属性

4.显示模式

块级元素:独占一行,宽度默认是父级的100%,加宽高生效
行内元素:一行共存多个,尺寸随内容多少而变化,加宽高不生效
行内块:一行共存多个,默认尺寸随内容大小而变化(如图片),加宽高生效

 

代码:

<!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>/* 块级:独占一行,宽度默认是父级的100%,加宽高生效 */div {width: 100px;height: 100px;}.div1 {background-color: red;}.div2 {background-color: orange;}/* 行内元素:一行共存多个,尺寸随内容多少而变化,加宽高不生效 */span {width: 200px;height: 200px;}.span1 {background-color: red;}.span2 {background-color: orange;}/* 行内块:一行共存多个,默认尺寸随内容大小而变化(如图片),加宽高生效 */img {width: 100px;height: 100px;}</style>
</head>
<body><!-- 块元素 --><div class="div1">div标签1</div><div class="div2">div标签2</div><!-- 行内元素 --><span class="span1">span1</span><span class="span2">span2</span><!-- 行内块元素 --><img src="./image/3.jpg" alt=""><img src="./image/3.jpg" alt=""></body>
</html>

打开浏览器检查可以查看这些元素的尺寸

5.转换显示模式

工作中常用转换成block和inline-block

代码:

<!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>/* 块级:独占一行,宽度默认是父级的100%,加宽高生效 */div {width: 100px;height: 100px;/* 转换成行内块 */display: inline-block; /* display: inline; */}.div1 {background-color: red;}.div2 {background-color: orange;}/* 行内元素:一行共存多个,尺寸随内容多少而变化,加宽高不生效 */span {width: 200px;height: 200px;/* 转换为块 */display: block; }.span1 {background-color: red;}.span2 {background-color: orange;}/* 行内块:一行共存多个,默认尺寸随内容大小而变化(如图片),加宽高生效 */img {width: 100px;height: 100px;/* 转换为块 */display: block;}</style>
</head>
<body><!-- 块元素 --><div class="div1">div标签1</div><div class="div2">div标签2</div><!-- 行内元素 --><span class="span1">span1</span><span class="span2">span2</span><!-- 行内块元素 --><img src="./image/3.jpg" alt=""><img src="./image/3.jpg" alt=""></body>
</html>

效果: 

将div(块)转换成行内块(一行共存多个,加宽高生效);

span(行内)转换成块(独占一行,加宽高生效);

img(行内块)转换成块(独占一行,加宽高生效)。

案例1

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>热词</title><style>/* 默认效果 */a {/* 转换显示模式为块 */display: block;width: 200px;height: 80px;/* 背景颜色 */background-color: #3064bb;/* 文字颜色 */color: white;/* 去除下划线 */text-decoration: none;/* 水平居中 */text-align: center;/* 行高 */line-height: 80px;/* 字体大小 */font-size: 18px;}/* 鼠标悬停效果 */a:hover {/* 悬停背景颜色变色 */background-color: #608dd9;}</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>

使用了这一节的伪类,显示模式等

效果:

案例2

布局大区域基本用div

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>banner效果</title><style>.banner {height: 500px;background-color: #f3f3f4;background-image: url(./image/test.jpg);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: white;/* 去下划线 */text-decoration: none ;/* 字号大小 */font-size: 20px;}</style>
</head>
<body><div class="banner"><h2>让创造产生价值</h2><p>我们希望小游戏平台提供无限可能</p><a href="#">我要报名</a></div>
</body>
</html>

最终效果: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ICLR 2024 | Meta AI提出ViT寄存器结构,巧妙消除大型ViT中的伪影以提高性能

论文题目&#xff1a;Vision Transformers Need Registers 论文链接&#xff1a;https://arxiv.org/abs/2309.16588 视觉Transformer&#xff08;ViT&#xff09;目前已替代CNN成为研究者们首选的视觉表示backbone&#xff0c;尤其是一些基于监督学习或自监督学习预训练的ViT&a…

【Java EE】线程安全的集合类

目录 &#x1f334;多线程环境使用 ArrayList&#x1f38d;多线程环境使⽤队列&#x1f340;多线程环境使⽤哈希表&#x1f338; Hashtable&#x1f338;ConcurrentHashMap ⭕相关面试题&#x1f525;其他常⻅问题 原来的集合类, 大部分都不是线程安全的. Vector, Stack, HashT…

智慧城市的定义是什么?

智慧城市&#xff1a;就是运用信息和通信技术手段感测、分析、整合城市运行核心系统的各项关键信息&#xff0c;从而对包括民生、环保、公共安全、城市服务、工商业活动在内的各种需求做出智能响应。其实质是利用**的信息技术&#xff0c;实现城市智慧式管理和运行&#xff0c;…

【小白必看】永久提升代码/算法能力的6个编程习惯(推荐阅读)

前言 编程和算法能力是当代工程师的核心竞争力之一。想要快速提升自己的编程和算法能力&#xff0c;却苦于没有合适的方法&#xff1f;别担心&#xff0c;今天我将与你分享6个高效编程习惯&#xff0c;让你轻松提升编程和算法能力&#xff01; 大家好&#xff0c;我是Erik&am…

使用脚本批量下载nuscens数据集

Nuscenes 完整版数据集批量下载 需求&#xff1a; 高速下载Nuscenes完整版数据集。采用google浏览器自带工具下载&#xff0c;速度慢&#xff0c;且容易断。 数据地址 官方地址&#xff1a;https://www.nuscenes.org/nuscenes 如何获取 Nuscenes 数据集的路径 安装插件 ch…

力控软件与多台不同品牌的PLC之间如何实现无线通讯?

在现代化工厂中&#xff0c;除厂级PLC系统外&#xff0c;还存在很多独立的子系统。比如&#xff0c;各个生产车间的PLC系统、或同一生产车间的不同生产流程的PLC系统。对一个大型工厂&#xff0c;由于生产线的不断改造、新老流程的不断更新&#xff0c;这些PLC系统往往是由不同…

【C++庖丁解牛】STL之vector容器的介绍及使用 | vector迭代器的使用 | vector空间增长问题

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.1 vector的介绍2 v…

navicat过期了,直接用idea连接mysql

1、我的是社区版&#xff0c;需要下载一个插件&#xff0c;直接搜索安装即可。 2、找到data source&#xff0c;点击mysql 3、你们熟悉的&#xff0c;输入账户密码&#xff0c;点击test Connection测试是否连接成功 4、这个本来是在右边&#xff0c;但是你可以把他挪到左边。 5…

三次握手,四次挥手基本概念及其抓包演示

目录 1.tcp三次握手 2.tcp四次挥手 3.思考问题(面试常考) 3.1 三次握手时可能出现什么攻击? 3.2 为什么是三次握手,可不可以是两次,为什么? ​编辑3.3 四次挥手的过程可以用三次完成吗? 4.抓包演示三次握手四次挥手 1.tcp三次握手 tcp协议特点:面向连接的,可靠的,流式…

【Python】一文详细介绍 plt.rcParamsDefault 在 Matplotlib 中的原理、作用、注意事项

【Python】一文详细介绍 plt.rcParamsDefault 在 Matplotlib 中的原理、作用、注意事项 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程…

C++的类与对象(三):构造函数、析构函数、对象的销毁顺序

目录 类的6个默认成员函数 构造函数 语法 特性 析构函数 特性 对象的销毁顺序​​​​​​​​​​​​​​ 类的6个默认成员函数 问题&#xff1a;一个什么成员都没的类叫做空类&#xff0c;空类中真的什么都没有吗&#xff1f; 基本概念&#xff1a;任何类在什么都不…

软考73-上午题-【面向对象技术2-UML】-UML中的图4

一、构件图&#xff08;组件图&#xff09; 1-1、构件图的定义 展现了&#xff0c;一组构件之间的组织和依赖。 构件图专注于系统的静态实现图。 构件图与类图相关&#xff0c;通常把构件映射为一个、多个类、接口、协作。 【回顾】&#xff1a; 类图展示了一组对象、接口、…

SpringCloud-SpringBoot读取Nacos上的配置文件

在 Spring Boot 应用程序中&#xff0c;可以使用 Spring Cloud Nacos 来实现从 Nacos 服务注册中心和配置中心读取配置信息。以下是如何在 Spring Boot 中读取 Nacos 上的配置文件的步骤&#xff1a; 1. 引入依赖 首先&#xff0c;在 Spring Boot 项目的 pom.xml 文件中添加 …

Android Kotlin知识汇总(一)编程语言

在 2019 年 Google I/O 大会上宣布今后将优先采用 Kotlin 进行 Android 开发。Kotlin 是一种富有表现力且简洁的编程语言&#xff0c;不仅可以减少常见代码错误&#xff0c;还可以轻松集成到现有应用中。如果您想构建 Android 应用&#xff0c;建议您从 Kotlin 开始着手&#x…

分享axios+signalr简单封装示例

Ajax Axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 从浏览器创建 XMLHttpReque…

MySQL-QA-异常问题及解决方案(持续更新)

MySQL-Q&A(持续更新) 1.1 PID文件找不到 问题描述 错误详情&#xff1a; ERROR&#xff01;The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid) 解决方案 首先排查配置文件&#xff0c;一般路径为&#xff1a;/etc/my.cnf 检查…

D2力扣滑动窗口系列

滑动窗口算法&#xff08;Sliding Window&#xff09;&#xff1a; 滑动窗口算法&#xff08;Sliding Window&#xff09;&#xff1a;在给定数组 / 字符串上维护一个固定长度或不定长度的窗口。可以对窗口进行滑动操作、缩放操作&#xff0c;以及维护最优解操作。 滑动操作&am…

【Ubuntu】gonme桌面的 gdm 和 lightdm 区别

总结&#xff1a;都可以 gdm: 【Gnome Display Manager】 完整&#xff0c;体积大 lightdm: 【Light Display Manager】 轻量

甜甜圈和贪吃蛇的后续

代码复现-项目复现 代码复现 云课五分钟-02第一个代码复现-终端甜甜圈C-CSDN博客 项目复现 云课五分钟-03第一个开源游戏复现-贪吃蛇-CSDN博客 不同的地图 加入班级和标识 循序渐进 这些案例都是来源网络&#xff0c;只是方便熟悉一下云课使用过程。 此部分学生掌握情况非…

OpenCV 图像的几何变换

一、图像缩放 1.API cv2.resize(src, dsize, fx0,fy0,interpolation cv2.INTER_LINEAR) 参数&#xff1a; ①src &#xff1a;输入图像 ②dsize&#xff1a;绝对尺寸 ③fx&#xff0c;fy&#xff1a;相对尺寸 ④interpolation&#xff1a;插值方法 2.代码演示 import cv2 …