CSS3新增特性(一)

目录

一、CSS3 新增选择器

1. 子级选择器

2. 兄弟选择器

相邻兄弟选择器

其他兄弟选择器

 3. 结构伪类选择器

①  E:first-child

② E:last-child

③ nth-child(n)

n为数字:

n为关键字:

n为公式:

④ E: firsh-of-type

⑤ E: last-of-type

 ⑥ E: nth-of-type(n)

⑦ E:nth-child(n) 和E:nth-of-type(n) 的区别

4. 伪元素选择器

h5 写法和传统写法区别

伪元素注意事项

E::before和E::after

E::first-letter 和 E::first-line

​编辑 5. 属性选择器

①. E[att]

②. E[att="val"]

③. E[att^="val"]

④. E[att$="val"] 

⑤. E[att*="val"] 

6. 选择器权重

二、CSS3盒模型 box-sizing

content-box 标准模式(默认)

border-box 怪异模式

三、CSS3新增属性

1. 边框圆角 border-radius

基础写法

 单一属性

简写方法

 / 的属性值写法

浏览器兼容

2. 文字阴影 text-shadow

语法

多层阴影

3. 盒子阴影 box-shadow

边框阴影

 多层阴影

4. 过渡属性

动画效果

过渡属性

单一属性写法

① transition-property 过渡的属性

② 时间

③ transition-timing-function 时间曲线

示例

浏览器兼容


一、CSS3 新增选择器

CSS3 中,相对于 CSS2.1 版本的 7 个选择器(标签选择器,id选择器,类选择器,通配符选择器,后代选择器(ul li),交集选择器(id.class),并集选择器(a,b,c)),增加了更多其他的选择器,实现了更多的选择方式。

1. 子级选择器

子级选择器用于选取带有特定父元素的元素。
书写语法:element1 > element2
注意:如果 element2 元素不是父元素 element1 的直接子元素,则不会被选择。
> 符号之前书写父级的选择器,> 符号之后写子级选择器,必须满足父子级关系才能选中标签。

示例:

现在有一个div,里面有两个p和一个div,inner里面还有一个p:

<body>
    <div class="box">
        <p>这是box中的p标签</p>
        <p>这是box中的p标签</p>
        <div class="inner">
            <p>这是inner中的p标签</p>
        </div>
    </div>
    <p>这是一个单独的p标签</p>
</body>

用子级选择器选择box中的两个p:

    <style> 
    .box>p{
        background-color: pink;
    }
    </style>

 

用子级选择器选择inner中的p:

    <style> 
    .inner>p{
        color: red;
    }
    </style>

如果是之前学的后代选择器,会把box里面的所有p都选上,包括inner里面的p:

2. 兄弟选择器

兄弟选择器分两种:

相邻兄弟选择器

相邻兄弟选择器可以用于选择紧接在另一个元素后的一个兄弟元素,而且二者有相同的父元素
书写语法:E1 + E2
注意:
a)选中的是紧跟在 E1 之后的同级元素 E2。
b)只能选中紧跟在后面的一个 E2 元素。
c) 二者有相同的父元素。
d)+ 符号前后可以添加空格书写。

 示例:

现在div box1中有一个二级标题和四个p标签:

<body>
    <div class="box1">
        <h2>二级标题</h2>
        <p>段落1</p>
        <p>段落2</p>
        <p>段落3</p>
        <p>段落4</p>
    </div>
</body>

用兄弟选择器选择h2后面紧跟的那一个p:

    <style> 
    .box1 h2 + p{
        background-color: pink;
    }
    </style>

如果在 h2 后面加一个 div ,css 代码不变,这是哪个都不会变成粉色,因为 h2 后面紧接的不是p而是div,所以哪个都不会被选中:

 值得注意的是,相邻兄弟选择器并不是只能选择一个,看这种情况:

这是因为,段落1是一个p,选中了段落2,所以段落2变成粉色;段落2选中后面紧邻的段落,3 ,段落3选中后面紧邻的段落4,所以后面三个段落都会变成粉色。

其他兄弟选择器

其他兄弟选择器匹配同一个父元素中在 element1 后面的所有 element2 元素。
书写语法:element1~element2
注意:
a)选择 element1 之后出现的所有 element2,之前的不会被选中。
b)两种元素必须拥有相同的父元素,但是 element2 不必直接紧随 element1。
c)~ 符号前后可以添加空格书写。

示例:

选择h2后面所有的p:

    <style> 
    .box1 h2 ~ p{
        background-color: pink;
    }
    </style>

 3. 结构伪类选择器

之前学过伪类选择器,它是选择一种状态或者某个位置,结构伪类选择器是选中某一个结构的伪类选择器,较常用的有6种:

①  E:first-child

首先看第一个: E:first-child,如果E不写就是匹配父元素中的第一个子元素,不论这个子元素是什么,如果写了 E,就是第一个子元素E:

 

但是如果是

    <style> 
    .box1 p:first-child{
        color: red;
    }
    </style>
</head>
<body>
    <div class="box1">
        <h2>二级标题</h2>
        <div>111</div>
        <p>段落1</p>
        <p>段落2</p>
        <p>段落3</p>
        <p>段落4</p>
    </div>
</body>

 哪个都不会被选中,因为box1中第一个子元素不是p而是h2。

所以一般使用 first-child的时候不写 E ,因为不写肯定会选中第一个,写了容易出错。

② E:last-child

类似于 E:first-child,选中父元素中的最后一个且最后一个元素必须是E

③ nth-child(n)

• 括号中的n 可以是数字,关键字和公式
括号中的 n 如果是数字,就是选择第 n 个子元素
• 常见的关键词 even 偶数 odd 奇数
• 常见的公式如下 ( 如果 n 是公式,则从 0 开始计算,n是从 0 ,1,2,3.. 一直递增)
• 但是第 0 元素或者超出了元素的个数会被忽略

比较常见的一些公式

n为数字:
    <style> 
    /* 选中box1中的第3个子元素 */
    .box1 :nth-child(3){
        background-color: aquamarine;
    }
    /* 选中box1中的第三个子元素并且这个子元素是p */
    .box1 p:nth-child(3){
        background-color: aquamarine;
    }
    </style>

n为关键字:

even 偶数个数的子元素 odd 奇数个数的子元素

    <style> 
    /* 选中box1中的第奇数个子元素并且这个子元素是p */
    .box1 p:nth-child(odd){
        background-color: aquamarine;
    }
    </style>

n为公式:

 

    <style> 
    /* 选中box1中的第0*3=,0,1*3=3,2*3=6...个子元素并且这个子元素是p */
    .box1 p:nth-child(3n){
        background-color: aquamarine;
    }
    </style>
</head>
<body>
    <div class="box1">
        <h2>二级标题</h2>
        <p>段落1</p>
        <p>段落2</p>
        <p>段落3</p>
        <p>段落4</p>
        <p>段落5</p>
    </div>
</body>

④ E: firsh-of-type

将满足是E类型的子元素重新划分为一个小组,在小组中排序,找第一个 

    <style> 
    /* 选中box1中的p类型的第一个子元素 */
    .box1 p:first-of-type{
        background-color: aquamarine;
    }
    </style>

⑤ E: last-of-type

    <style> 
    /* 选中box1中的h2类型的最后一个子元素 */
    .box1 h2:last-of-type{
        background-color: aquamarine;
    }
    </style>

 ⑥ E: nth-of-type(n)

制定类型E中的第n个子元素。

⑦ E:nth-child(n) 和E:nth-of-type(n) 的区别

E:nth-child(n) 匹配父元素的第 n 个子元素 E,同时需要满足两个条件
E:nth-of-type(n) 匹配同类型中的第 n 个同级兄弟元素 E,会忽视其他同级的非同类型元素。

4. 伪元素选择器

前面学过<a>标签的伪元素选择器,其实CSS3新增了很多伪元素选择器:

E::before 在E元素内部的前面插入一个元素, E::after在 E元素内部的后面插入一个元素

现在场景:

h5 写法和传统写法区别

• 1. 单冒号 E:before(传统)
• 2. 双冒号 E::before(h5)
• 浏览器对以上写法都能识别,双冒号是 h5 的语法规范

伪元素注意事项

• 伪元素只能给双标签添加,不能给单标签添加(div是双标签,所以这里完全没有问题)
• 伪元素的冒号前不能有空格,如 E ::before 这个写法是错误的
• 伪元素里面必须写上属性 content:"";


• before 和 after 创建一个元素,但是属于行内元素(宽度高度都是被内容撑起)

如果想让它变成块元素可以设置 display: block; 然后就可以设置高度宽度了。
• 因为在 DOM 里面(JS)看不见刚才创建的元素,所以我们称为伪元素。

E::before和E::after

  <style>  
  .box::before{
        display: block;
        width: 400px;
        height: 50px;
        content: "1";
        background-color: pink;
    }
    .box::after{
        display: block;
        width: 400px;
        height: 50px;
        content: "2";
        background-color: pink;
    }
    </style>

E::first-letter 和 E::first-line

这两个一般用来处理文字内容。


 

 5. 属性选择器

属性选择器用来选择包含指定属性的标签。

①. E[att]

E[att] :只要这个元素 E 设置过 att 这个属性那么就可以选中这个元素。

现在情景:两个单选框,两个复选框,两个按钮

如果这样写css:

    <style>
    input{
        width: 100px;
        height: 30px;
    } 
    </style>

 那么这六个input标签都会被选中,包括两个单选框、复选框以及按钮

只想选中设置了 name 属性的两个单选框,那么就可以使用 E[att]:

    <style>
    input[name]{
        width: 100px;
        height: 30px;
    } 
    </style>

②. E[att="val"]

E[att="val"] : E 元素设置了 att 属性且属性值等于 val 。

type属性这六个 input 标签都设置了,但我只选择设置了 type="checkbox" 的复选框:

    <style>
    input[type="checkbox"]{
        width: 100px;
        height: 30px;
    } 
    </style>

③. E[att^="val"]

E[att^="val"] : E 元素设置了 att 这个属性并且属性值以 “val” 开头:

例如还是像上面例子一样选中复选框,不需要写 checkbox 写完整,以check开头就可以:

    <style>
    input[type^="check"]{
        width: 100px;
        height: 30px;
    } 
    </style>

还有一种情况:

这里单选框和复选框都设置了 class,并且属性值都是以 icon 开头:

④. E[att$="val"] 

与E[^="val"]非常类似,只不过一个是以 val 开头,一个是以 val 结尾

class 属性的属性值以 dan 结尾的,选中两个单选框:

    <style>
    input[class$="dan"]{
        width: 100px;
        height: 30px;
    } 
    </style>

⑤. E[att*="val"] 

属性值 val 不一定在开头也不一定在结尾,只要属性值中包含 val 这些字符,不管在任何位置,都可以。

例如,选出 type 的属性值中包含 o 这个字母的:(单选框、复选框、按钮)

    <style>
    input[type*="o"]{
        width: 100px;
        height: 30px;
    } 
    </style>

6. 选择器权重

•  基础选择器:id 选择器 > 类选择器 > 标签选择器 > *
•  伪类选择器、属性选择器的权重等于类选择器 。
•  伪元素选择器的权重等于标签选择器 。

二、CSS3盒模型 box-sizing

盒模型就是用来设置与标签相关的一些位属性,比如宽、高、边框、内边距、外边距等。

在之前的学习中,我们知道,可以实体化的区域是 padding+border+宽高 区域,在CSS3中添加了一条属性 box-sizing 来专门指定盒模型:

CSS3 中可以通过 box-sizing 来指定盒模型,这样我们就可以设置如何计算一个元素的总宽度和总高度

content-box 保证盒子的书写区域不会变化,boeder-boc 保证边框及以内的区域不会变化。

content-box 标准模式(默认)

当不设置  box-sizing 属性时,默认是标准模式。

Standard 模式:标准模式中,盒子总体大小为 width(height) + padding + border,内容区域是width 和 height 部分。

现在情景:

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box">文字内容</div>
</body>

当添加了 padding: 10px; ,这10px不会在盒子的宽高内部,而是会扩出来,盒子总体大小增大了,但是内容区域始终保持200*200的效果不变。

添加 border: 10px  solid blue; 也是类似的,书写区域还是200*200,盒子扩大。

border-box 怪异模式

Quirks 模式:怪异模式中,盒子总体大小为 width 和 height,添加了padding和border后,内容区域会收缩。

后期制作网页时,如果量出一个盒子总体宽高是固定的,padding和border都比较好测量,这时就无需手动计算内部内容区域的宽高,直接设置 box-sizing: border-box; 即可解决问题。

三、CSS3新增属性

CSS3新增属性:边框圆角、文字阴影、盒子阴影。

1. 边框圆角 border-radius

基础写法

• 属性名:border-radius
• 作用:设置边框的圆角,将元素的矩形效果改为圆角效果。
• 属性值:可以是像素值,或者百分比,百分比参考的是盒子整体宽度、高度的百分比(不仅包含宽高,也包含padding 和 border,magin值不算)

水平方向100px,垂直方向50px:

水平垂直方向都是50px:

如果想得到一个正圆,可以设置 border-radius 属性值为宽高的一半

 

但是如果有padding 和 border ,那么也要考虑进来,设置为(width+padding+border)/ 2 :

 单一属性

• border-top-left-radius: 半径;    左上角圆角化
• border-top-right-radius: 半径;    右上角圆角化
• border-bottom-right-radius: 半径;    右下角圆角化
• border-bottom-left-radius: 半径;    左下角圆角化

注意都是上下方向先写(top  bottom ),左右方向(left  right )后写。

例如只想让右下角圆角化:

简写方法

• border-radius 相当于四个单一属性的简写方法,类似 padding 也可以有四种值的写法。
• 四值法 border-radius: 左上角 右上角 右下角 左下角; (顺时针方向)
•三值法  border-radius: 左上角 右上角和左下角 右下角 ; (顺时针方向)
•二值法  border-radius: 左上角和右下角 右上角和左下角 ;
• border-radius: 四个角相同;

 / 的属性值写法

斜线 / 比较特殊,需要好好理解 。

border-radius 属性值中出现了 / 斜线,那么 / 前面可以设置水平方向四种值的写法(四值法 三值法 二值法 一值法都可),/ 后面可以设置垂直方向四种值的写法(同样四种写法都行)。

后续做一些圆的效果,一般使用百分比的写法,避免自己计算

浏览器兼容

Internet Explorer 8 及以下版本浏览器不支持border-radius属性,其他浏览器都支持。

2. 文字阴影 text-shadow

CSS3 中,text-shadow 可向文本应用阴影。通过属性值能够规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色:

元素内部加载坐标,(0,0)是原点,从这里开始加载,水平向右是 X 轴正方向,垂直向下是 Y 轴正方向:

语法

 text-shadow 属性向文本添加阴影,属性值有2-3个长度值和一个可选的颜色值进行规定,省略的长度是 0。

虚化会更漂亮一些:

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .word {
            margin: 50px;
            font: bold 30px/60px "微软雅黑";
            /* 文字阴影:水平位置 垂直位置 模糊程度 颜色 */
            text-shadow: 3px 3px 5px red;
        }
    </style>
</head>
<body>
    <p class="word">文字阴影效果</p>
</body>

多层阴影

多层阴影:比如一层阴影是绿色,一层阴影是红色,一层是红色.....

text-shadow 属性也可以向文本添加多个阴影,逗号分隔多个阴影的属性值。
注意:多阴影中,先写的阴影压盖在后写的阴影上

一般为了多层阴影能够显示出来,会使每层阴影的水平和垂直位置不同

    <style>
        .word {
            margin: 50px;
            font: bold 30px/60px "微软雅黑";
            /* 多层阴影 逗号分隔*/
            text-shadow: 3px 3px red,
            6px 6px blue,
            9px 9px green;
        }
    </style>

3. 盒子阴影 box-shadow

边框阴影

CSS3 中,box-shadow 属性用于对盒子边框添加阴影。

box-shadow 属性向盒子添加阴影,属性值有2-4 个长度值、可选的颜色值以及可选的 inset 关键词来规定,省略的长度是 0。 

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box {
            width: 300px;
            height: 300px;
            background-color: pink;
            border: 5px solid blue;
            /* 边框阴影:水平位置 垂直位置 模糊距离 阴影尺寸 阴影颜色 */
            box-shadow: 5px 5px 5px 4px green;
        }
    </style>
</head>
<body>
    <div class="box"></div>>
</body>

 多层阴影

box-shadow 属性也可以向盒子添加多个阴影,逗号分隔多个阴影的属性值。
注意:多阴影中,先写的阴影压盖在后写的阴影上

4. 过渡属性

动画效果

CSS3 出现之前,前端一般使用 Flash 动画或 JavaScript 制作动画,这种歌制作的叫作帧动画,帧动画:通过一帧一帧的画面按照固定顺序和速度播放,如电影胶片。

CSS3产生之后,使用过渡属性制作动画。而且做出来的会更好一些。

过渡属性

属性名:transition
作用:在不使用 Flash 动画或 JavaScript 的情况下,使用 transition 可以实现补间动画(过渡效果),并且当前元素只要有“属性”发生变化时即存在两种状态(我们用A和B代指),那么A和B之间就可以实现平滑的过渡的动画效果。为了方便看到这种过渡效果,我们使用 :hover 切换状态。

语法格式:

transition:过渡的属性  过渡时间  运动曲线  延时时间

具体来看:

单一属性写法

① transition-property 过渡的属性

• none 表示没有属性过渡,也就不会出现动画效果(默认值就是none)
• all 表示所有变化的属性都过渡
• 属性名 使用具体的属性名,多个属性名中间逗号分隔

② 时间

有两个时间,即第一第二个属性值

• 过渡时间:以s秒为单位。
• 延时时间:以s秒为单位。0s也必须加单位。(0的话不能只写0,必须写0s)

③ transition-timing-function 时间曲线

贝塞尔曲线

其实前面五个都是一些特定参数,提前封装好的的效果

接下来了解一下贝塞尔曲线各个数值的含义:

水平轴是时间,竖直轴进度就是从A 位置走到 B 位置。开始位置是(0,0)点,结束位置是(1,1)点,水平方向从0走到1,竖直方向也是从0走到1,这些是已经定好的。

我们能控制到就是曲线,是快速完成还是慢速完成,还是以一个变速的效果。会设置一个 B 点和一个 C 点去控制。

示例

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box {
            width: 300px;
            height: 300px;
            background-color: pink;
           /* 过渡属性:属性 过渡时间 时间曲线 延时时间 */
           transition: all 2s linear 0s;
        }
        /* 设置终点,鼠标移上时才加载从而造成时间差 */
        .box:hover{
            width: 500px;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>

300px是起点,500px是终点,如果没有 transition: all 2s linear 0s; 就是鼠标移上时立即从300px变成500px,有了就是缓慢变成,一旦离开就会缓慢恢复为300px。

可以在这里自己配置贝塞尔曲线的参数:

拖动会出现值,直接将值复制到代码中即可。

浏览器兼容

• Internet Explorer 10、Firefox、Chrome 以及 Opera 支持 transition 属性。
• Safari 需要前缀 -webkit-。
• 注意:Internet Explorer 9 以及更早的版本,不支持 transition 属性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

visionTransformer window平台下报错

错误&#xff1a; KeyError: Transformer/encoderblock_0/MlpBlock_3/Dense_0kernel is not a file in the archive解决方法&#xff1a; 修改这个函数即可&#xff0c;主要原因是Linux系统与window系统路径分隔符不一样导致 def load_from(self, weights, n_block):ROOT f&…

【RT-Thread应用笔记】FRDM-MCXN947上的RW007实践——WiFi延迟和带宽测试

【RT-Thread应用笔记】FRDM-MCXN947上的RW007实践——WiFi延迟和带宽测试 一、背景介绍1.1 RW007模组简介1.2 Arduino接口简介1.3 RW007软件包简介1.4 RT-Thread env工具简介 二、创建工程2.1 新建工程2.2 添加rw007软件包2.3 打开RW007配置项2.4 启用pin驱动2.5 禁用rw007的ST…

Cloud微服务:Ribbon负载均衡

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Ribbon负载均衡 一、Ribbon - 负载均衡原理、流…

探索 虚拟化技术+Docker部署与操作

目录 一、你知道哪些云 1.1国内云 1.2国外云 二、Iaas、 Paas、SaaS三种云服务区别 2.1第一层叫做IaaS 2.2第二层就是所谓的PaaS 2.3第三层也就是所谓SaaS 三、虚拟化架构 3.1寄居架构 3.2源生架构 3.3操作系统虚拟化架构 3.4混合虚拟化架构 四、虚拟化特点及优势…

jmeter5.4.1源码编译(IDEA)问题解决

问题现象&#xff1a;最近想更深入的研究下jmeter5.4.1的原理及功能具体实现&#xff0c;从官网down了个源码&#xff0c;在本地使用IDEA工具导入项目、编译时&#xff0c;报以下错误&#xff1a; class jdk.internal.loader.ClassLoaders$PlatformClassLoader cannot be cast…

vue整合Echarts

首先打开网址https://echarts.apache.org/examples/zh/index.html 进入Echars官网找到自己想要的图形我这里选择的是柱形图 点开完整代码直接cv大法 下载Echars的npm npm install echarts 在vue里面挂在个div 导入相关包 写个方法 就是cv过来的 然后改成后端传过来的值…

【STM32+HAL+Proteus】系列学习教程---RS485总线(收发仿真实现)

实现目标 1、掌握UART/USART/RS485等几个常见概念的区别 2、掌握RS485的逻辑电平、硬件接线等基础知识 3、具体实现目标&#xff1a;1、利用两个单片机组成RS485通信网络&#xff1b;2、两个单片机之间能实现正常收发数据。 一、串口、RS485等之间的关系 串口&#xff1a;是…

微机原理实验三、将AX寄存器中的16位数分成4组,每组4位,让后把这四组数分别放在AL,BL,CL,DL

微机原理实验三、将AX寄存器中的16位数分成4组&#xff0c;每组4位&#xff0c;让后把这四组数分别放在AL,BL,CL,DL 功能&#xff1a; 将AX寄存器中的16位数分成4组&#xff0c;每组4位&#xff0c;让后把这四组数分别放在AL,BL,CL,DL ; 调试结果&#xff1a; input&#xff1a…

ASP.NET集成客户关系管理的企业网站的设计与开发

摘 要 企业要在激烈的市场竞争中立于不败之地&#xff0c;就必须找一种全新的管理理念和管理手段&#xff0c;对其内部和外部资源进行有效的整合。新一代ERP产品正在向客户端和供应端延伸&#xff0c;客户端的延伸即是客户关系管理。对于每个企业来说客户管理的完善程度将直接…

计算机网络 --- WebSocket协议 和 Signalr

计算机网络 --- WebSocket协议 和 Signalr 什么是WebSocket什么是SignalrSignalr Example -- SimpleChat 什么是WebSocket HTTP是基于TCP协议的&#xff0c;同一时间里&#xff0c;客户端和服务器只能有一方主动发数据&#xff0c;是半双工通信。 通常&#xff0c;打开某个网页…

Qt笔记-解决子控制大小获取不正确(width和height)需要重制窗体后,才能获得正确的值

在Qt中&#xff0c;子控件的宽度和高度在构造后并不准确&#xff0c;而只有在调整窗口大小后才正确&#xff0c;这可能是因为子控件的布局或者约束尚未完全计算和应用。 为了解决这个问题&#xff0c;可以使用QTimer来延迟获取子控件的宽度和高度&#xff0c;以确保在布局和约…

ffmpeg初体验

一&#xff1a;安装 sudo yum install epel-release -y sudo yum update -ysudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpmyum -y install …

数据结构(邓俊辉)学习笔记——向量vector_02_动态空间管理

文章目录 1. 概述2. 静态空间管理缺点3. 动态空间管理3.1 扩容3.1.1 如何实现扩容3.1.2 扩容算法3.1.3 容量递增策略 VS 容量倍增策略3.1.3.1 容量倍增策略分摊分析3.1.3.2 容量递增策略分摊分析3.1.3.3 结果对比 3.2缩容3.2.1 动态缩容算法实现3.2.2 动态缩容算法时间复杂度 4…

Opencv_3_图像对象的创建与赋值

ColorInvert.h 如下&#xff1a; #include <opencv.hpp> using namespace std; #include <opencv.hpp> using namespace cv; using namespace std; class ColorInvert{ public : void mat_creation(); }; ColorInvert.cpp 文件如下&#xff1a; #include &q…

自动驾驶---OpenSpace之Hybrid A*规划算法

1 背景 笔者在上周发布的博客《自动驾驶---低速场景之记忆泊车》中&#xff0c;大体介绍了记忆泊车中的整体方案&#xff0c;其中详细阐述了planning模块的内容&#xff0c;全局规划及局部规划&#xff08;会车&#xff09;等内容&#xff0c;包括使用的算法&#xff0c;但是没…

3D Gaussian Splatting介绍

目录 一、概述二、基础介绍1. 多维高斯分布2. 将3D 高斯投影到2D像素平面3. 球谐函数4. Splatting and α \alpha α blending 三、整体流程四、 伪代码五、评价指标六、实验结果七、reference 一、概述 3D Gaussian Splatting和NeRF一样&#xff0c;主要用于新视图合成。 特…

开源博客项目Blog .NET Core源码学习(17:App.Hosting项目结构分析-5)

本文学习并分析App.Hosting项目中前台页面的作品展示页面和首页页面。 作品展示页面 作品展示页面总体上为上下布局&#xff0c;上方显示导航菜单&#xff0c;下方从左向右显示图片数据&#xff0c;支持放大查看图片和下载图片。整个页面使用了layui中的面包屑导航、弹出层、流…

高通发布电脑CPU,比英特尔Ultra9领先51%

要说2024年最热门的关键词&#xff0c;那肯定非 AI 莫属&#xff0c;当前 AI 已经开始深入各行各业&#xff0c;AI 电视、AI 手机、AI 车机、AI 家电&#xff0c;以及 AI PC ,这些都意味着 AI 将对各个行业带来的新风向和不小的冲击。 2024 年了&#xff0c;PC 处理器还能卷出什…

偏微分方程算法之二阶双曲型方程紧差分方法

目录 一、研究目标 二、理论推导 三、算例实现 一、研究目标 前面我们已经介绍了二阶双曲型方程显式、隐式差分格式&#xff0c;可否像抛物型方程一样&#xff0c;构建更高精度的差分格式。接下来我们介绍紧差分格式。这里继续以非齐次二阶双曲型偏微分方程的初边值问题为研…

【JavaScriptThreejs】判断路径在二维平面上投影的方向顺逆时针

原理分析 可以将路径每个连续的两点向量叉乘相加&#xff0c;根据正负性判断路径顺逆时针性 当我们计算两个向量的叉积时&#xff0c;结果是一个新的向量&#xff0c;其方向垂直于这两个向量所在的平面&#xff0c;并且其大小与这两个向量构成的平行四边形的面积成正比。这个新…