从 HTML 到 CSS:开启网页样式之旅(二)—— 深入探索 CSS 选择器的奥秘

从 HTML 到 CSS:开启网页样式之旅(二)—— 深入探索 CSS 选择器的奥秘

  • 前言
  • 一、CSS基本选择器
    • 1. 通配选择器
    • 2. 元素选择器
    • 3. 类选择器
    • 4. id选择器
    • 5.基本选择器总结
  • 二、CSS复合选择器
    • 1. 后代选择器
    • 2. 子选择器
    • 3. 相邻兄弟选择器
    • 4.交集选择器
    • 5.并集选择器
    • 6.属性选择器
      • (1)选择具有指定属性的元素
      • (2)选择具有指定属性且属性值等于特定值的元素
      • (3)选择具有指定属性且属性值包含特定值
      • (4)选择具有指定属性且属性值以特定值开头(后面可以跟一个连字符 “-”)的元素。
      • (5) 选择具有指定属性且属性值以特定值开头的元素
      • (6)选择具有指定属性且属性值以特定值结尾的元素
    • 7.伪类选择器
      • 常见的伪类选择器及示例
      • (1):hover
      • (2):active
      • (3):focus
      • (4):first - child
      • (5):last - child
      • (6):nth - child(n)
      • (7):visited
      • (8)常用的
    • 8.伪元素选择器
  • 三、选择器的优先级
    • 1. 优先级基本规则
    • 2. 计算优先级(特异性)


前言

  • 在上一节内容中,我们初步了解了CSS如何引用以及其基本语法规范,接下来要深入探究的便是CSS选择器这一关键部分。
  • CSS选择器犹如一把精准的钥匙能够帮助我们准确地定位到HTML页面中需要添加样式的元素,从而实现对网页样式的精细控制。
下面,就让我们一同揭开CSS选择器的神秘面纱,深入了解其丰富多样的类型和强大功能

一、CSS基本选择器

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>
        /* 选中所有元素 */
        * {
            color: orange;
            font-size: 40px;
        }
    </style>
</head>

<body>
    <div>
        <P>张三 :98</P>
        <P>张三 :96</P>
        <P>张三 :99</P>
        <P>张三 :97</P>
    </div>
</body>

</html>

效果图

在这里插入图片描述

备注:目前来看通配选择器貌似有点鸡肋,但后面清除样式时,会对我们有很大帮助

2. 元素选择器

作用:为页面中 某种元素 统一设置样式。

  • 语法:
标签名 
{ 

属性名: 属性值;
}

举例

/* 选中所有段落元素 */
<style>
      p {
        color: blue;
        font-size: 60px;
      }
    </style>
  </head>

  <body>
    <span>2</span>
    <div>
      <p>张三 :98</p>
      <p>张三 :96</p>
      <p>张三 :99</p>
      <p>张三 :97</p>
    </div>

效果图
在这里插入图片描述

元素选择器无法实现差异化设置,例如上面的代码中,所有的p元素效果都一样

3. 类选择器

作用:根据元素的class 值,来选中某些元素。

  • 可以选中具有特定类名的 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>
        /* 定义一个名为highlight的类选择器样式 */
      .highlight {
            color: green;
            font-weight: bold;
        }
    </style>
</head>

<body>
    <div>
        <p class="highlight">张三 :98</p>
        <p>张三 :96</p>
        <p class="highlight">张三 :99</p>
        <p>张三 :97</p>
    </div>
</body>

</html>
  • 效果图
    在这里插入图片描述

4. id选择器

  • id 选择器用于选中具有特定 id 属性值的 HTML 元素,在一个 HTML 页面中,每个 id 值应该是唯一的,它主要用于对特定的、独一无二的元素进行精准的样式设置或其他操作(比如==通过 JavaScript ==进行交互操作时,常通过 id 来精准定位元素)
  • 语法
#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>
        /* 定义一个名为unique-element的id选择器样式 */
        #unique-element {
            color: purple;
            background-color: yellow;
            font-size: 30px;
        }
    </style>
</head>

<body>
    <div>
        <p id="unique-element">张三 :98</p>
        <p>张三 :96</p>
        <p>张三 :99</p>
        <p>张三 :97</p>
    </div>
</body>

</html>

在这个例子中,我们通过#unique-element这个 id 选择器定义了特定的样式,只有那个 id 属性值为unique-element的<p>元素会应用这些样式,其他元素不受影响

  • 效果图
  • 在这里插入图片描述

5.基本选择器总结

在这里插入图片描述

二、CSS复合选择器

CSS 复合选择器是由基本选择器通过特定的组合方式构成的,它能够更加精准地定位到我们想要设置样式的元素,满足更复杂的页面样式设计需求

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元素下的所有p元素 */
        div p {
            color: red;
            font-size: 25px;
        }
    </style>
</head>

<body>
    <div>
        <p>张三 :98</p>
        <p>张三 :96</p>
        <span>
            <p>张三 :99</p>
        </span>
        <p>张三 :97</p>
    </div>
    <p>这是div外的p元素,不受上述样式影响</p>
</body>

</html>

在上述代码中,通过div p这个后代选择器,我们为<div>元素内部的所有<p>元素设置了特定的样式(红色文字,字体大小为 25px),而位于<div>元素外部的<p>元素则不会应用这些样式
在这里插入图片描述

2. 子选择器

子选择器用于选择某元素的直接子元素并设置样式,它与后代选择器的区别在于只针对直接子元素,不包括孙元素及更后代的元素

父元素 > 子元素 {
    属性名: 属性值;
}
<style>
        /* 选择div元素的直接子p元素 */
        div > p {
            color: cyan;
            font-size: 28px;
        }
    </style>
<div>
        <p>张三 :98</p>
        <p>张三 :96</p>
        <span>
            <p>张三 :99</p>
        </span>
        <p>张三 :97</p>
    </div>
    <p>这是div外的p元素,不受上述样式影响</p>

在这里插入图片描述

3. 相邻兄弟选择器

相邻兄弟选择器用于选择紧挨着某元素的下一个兄弟元素并设置样式

元素 + 相邻兄弟元素 {
    属性名: 属性值;
}

举例:

 <style>
        /* 选择p元素紧挨着的下一个p元素 */
        p + p {
            color: magenta;
            font-size: 32px;
        }
    </style>
</head>

<body>
    <p>张三 :98</p>
    <p>张三 :96</p>
    <p>张三 :99</p>
    <p>张三 :97</p>
</body>

在这里插入图片描述
在这里插入图片描述

大家想一想第一个为什么显示不出来呢

第一个<p>元素(张三 : 98)没有紧挨着它的前一个<p>元素,因为它是第一个<p>元素。
从第二个<p>元素(张三 : 96)开始,它是第一个<p>元素(张三 : 98)的下一个兄弟元素,所以它会应用p + p选择器的样式

4.交集选择器

交集选择器是由两个或多个选择器通过紧挨着书写来构成的,它会选择同时满足这些选择器条件的元素。只有当一个元素匹配所有组成交集选择器的选择器时,该元素才会被选中并应用样式

语法格式为

选择器1选择器2{属性名:属性值;}

举例

<style>
    p.highlight {
      color: green;
      font - weight: bold;
    }
  </style>
</head>
<body>
  <p class="highlight">这是一段带有highlight类的段落,会应用样式。</p>
  <p>这是一段普通段落,不会应用样式。</p>
  <span class="highlight">这是一个带有highlight类的span元素,不会应用样式,因为它不是段落元素。</span>
</body>

在这里插入图片描述

5.并集选择器

并集选择器用于同时选择多个不同的元素,并为它们设置相同的样式。

语法格式为:
选择器1,选择器2,选择器3{属性名:属性值;}

  • 举例
 p,span{
      color: red;
      font - size: 20px;
    }
  </style>
</head>
<body>
  <p>这是一个段落。</p>
  <span>这是一个span元素。</span>
  <div>这是一个div元素,不受影响。</div>
</body>

在这里插入图片描述

6.属性选择器

属性选择器是 CSS 中用于根据元素的属性及其属性值来选择元素的一种选择器。它允许你通过检查 HTML 元素是否具有特定属性或特定属性值来选择元素,并为其设置样式

(1)选择具有指定属性的元素

[title] {
  color: green;
}
<p title="这是一个段落">这是有title属性的段落</p>
<p>这是没有title属性的段落</p>

在这里插入图片描述

(2)选择具有指定属性且属性值等于特定值的元素

<style>
        [class="highlight"] {
            color: red;
            font - weight: bold;
        }

        <p title="这是一个段落">这是有title属性的段落</p><p>这是没有title属性的段落</p>
    </style>
</head>
<p class="highlight">这是带有highlight类的段落</p>
<p class="other">这是带有other类的段落</p>

在这里插入图片描述

  • [attribute~ = value]

(3)选择具有指定属性且属性值包含特定值

 [class ~= "important"] {
  background-color: yellow;
}

    </style>
</head>
<p class="important urgent">这个段落有important和urgent类</p>
<p class="urgent">这个段落只有urgent类</p>

在这里插入图片描述

  • [attribute| = value]

(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>
        [lang|="en"] {
            font-style: italic;
        }
    </style>
</head>

<body> 
    <p lang="en">这是英文段落</p>
    <p lang="en-us">这是美式英文段落</p> 
    <p lang="fr">这是法文段落</p>
</body>

</html>

在这里插入图片描述

(5) 选择具有指定属性且属性值以特定值开头的元素

  • [attribute^ = value]
<!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>
       [href ^= "https://"] {
  color: blue;
}
    </style>
</head>

<body> 
    <a href="https://www.example.com">这是一个https链接</a>
<a href="http://www.other.com">这是一个http链接</a>
</body>

</html>

在这里插入图片描述

(6)选择具有指定属性且属性值以特定值结尾的元素

  • [attribute* = value]
[src$ = ".jpg"] {
  border: 1px solid red;
}
<img src="image.jpg" alt="这是JPG图片">
<img src="image.png" alt="这是PNG图片">

在这里插入图片描述

7.伪类选择器

  • 伪类选择器是 CSS 中一种特殊的选择器,它根据元素的特定状态或位置等条件来选择元素,而不是基于元素的实际标记或属性。通过伪类选择器,可以为处于不同状态下的元素设置不同的样式,增强用户交互体验

常见的伪类选择器及示例

(1):hover

当鼠标悬停在元素上时应用样式

<!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>
        a:hover {
            color: orange;
        }
    </style>
</head>

<body>
    <a href="#">这是一个链接</a>
</body>

</html>

当鼠标悬停在<a>链接元素上时,其文字颜色会变成橙色。

在这里插入图片描述

(2):active

当元素被激活时(例如被点击时)应用样式

<!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>
        button:active {
            background-color: yellow;
        }
    </style>
</head>

<body>
    <button>点击我</button>
</body>

</html>

当按钮被点击(按下鼠标键)时,其背景颜色会变成黄色

在这里插入图片描述

(3):focus

当元素获得焦点时(例如表单元素被选中准备输入时)应用样式

<!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>
        input:focus {
            border: 2px solid blue;
        }
    </style>
</head>

<body>
    <input type="text">
</body>

</html>

<input>文本框获得焦点(用户点击准备输入)时,其边框会变成 2px 宽的蓝色边框
在这里插入图片描述

(4):first - child

选择元素的第一个子元素

<!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>
        ul li:first-child {
            font-weight: bold;
        }
    </style>
</head>

<body>
    <ul>
        <li>第一个列表项</li>
        <li>第二个列表项</li>
        <li>第三个列表项</li>
    </ul>
</body>

</html>

在无序列表<ul>中,第一个<li>列表项的文字会加粗显示

(5):last - child

选择元素的最后一个子元素

<!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>
        ol li:last-child {
            color: green;
        }
    </style>
</head>

<body>
    <ol>
        <li>第一个有序列表项</li>
        <li>第二个有序列表项</li>
        <li>第三个有序列表项</li>
    </ol>
</body>

</html>

在有序列表<ol>中,最后一个<li>列表项的文字颜色会变成绿色
在这里插入图片描述

(6):nth - child(n)

选择元素的第 n 个子元素。这里的 n 可以是数字、关键字

<!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>
        tr:nth-child(even) {
            background-color: #f2f2f2;
        }
    </style>
</head>

<body>
    <table>
        <tr><td>第一行第一列</td><td>第一行第二列</td></tr>
        <tr><td>第二行第一列</td><td>第二行第二列</td></tr>
        <tr><td>第三行第一列</td><td>第二行第二列</td></tr>
    </table>
</body>

</html>

在表格

中,偶数行(第 2、4、6 等行)的元素背景颜色会变成浅灰色(#f2f2f2)
在这里插入图片描述

(7):visited

  • 当链接被访问过之后应用样式
<!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>
        a:visited {
            color: purple;
        }
    </style>
</head>

<body>
    <a href="https://www.example.com">这是一个链接</a>v
</body>

</html>
当用户访问过<a>链接指向的网址后,再次看到该链接时,其文字颜色会变成紫色

在这里插入图片描述

(8)常用的

在这里插入图片描述

8.伪元素选择器

作用:选中元素中的一些特殊位置

在这里插入图片描述

三、选择器的优先级

通过不同的选择器,选中相同的元素 ,并且为相同的样式名设置不同的值时,就发生了样式的冲突。

  • 到底应用哪个样式,此时就需要看优先级了

1. 优先级基本规则

  • 内联样式大于
  • id 选择器大于
  • 类选择器和伪类选择器大于
  • 元素选择器

2. 计算优先级(特异性)

除了上面根据选择器类型判断优先级,还可以通过计算特异性来更准确确定优先级。

  • id 选择器:每有一个 id 选择器,特异性值加 100。
  • 类选择器、伪类选择器、属性选择器:每有一个,特异性值加 10。
  • 元素选择器、伪元素选择器:每有一个,特异性值加 1。
    比如选择器组合#mainDiv.myClass p:hover
  • 这里有 1 个 id 选择器#mainDiv(特异性值 100)、
  • 1 个类选择器.myClass(特异性值 10)、
  • 1 个伪类选择器p:hover(特异性值 10),
  • 总共特异性值是 120。

当和其他选择器比较对同一个元素设置样式时,特异性值高的那个选择器的样式会优先应用


本节内容到此结束,喜欢的话记得三连哦

在这里插入图片描述

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

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

相关文章

【机器学习chp7】SVM

参考1&#xff0c;笔记 SVM笔记.pdf 参考2&#xff1a;王木头视频 什么是SVM&#xff0c;如何理解软间隔&#xff1f;什么是合叶损失函数、铰链损失函数&#xff1f;SVM与感知机横向对比&#xff0c;挖掘机器学习本质_哔哩哔哩_bilibili 目录 一、SVM模型 二、构建决策函…

【C++】读取数量不定的输入数据

读取数量不定的输入数据 似乎是一个很实用的东西&#xff1f; 问题&#xff1a; 我们如何对用户输入的一组数&#xff08;事先不知道具体有多少个数&#xff09;求和&#xff1f; 这需要不断读取数据直至没有新的输入为止。&#xff08;所以我们的代码就是这样设计的&#x…

HarmonyOS4+NEXT星河版入门与项目实战(20)------状态管理@ObjectLink @Observed

文章目录 1、用法图解2、案例实现1、任务类改造2、参数改造变量3、完整代码4、运行效果4、总结1、用法图解 2、案例实现 上一节的案例中,一直有一个功能没有生效,就是任务完成后对应的任务行变灰,任务字体出现中划线删除的效果。而该功能一直不生效的原因就是要改变的数据值…

2024年工信部大数据分析师证书报考条件是怎样的?有什么用

大数据分析师&#xff0c;乃是这样一类专业人才&#xff0c;他们凭借着先进且高效的数据分析技术以及各类实用工具&#xff0c;对规模庞大、纷繁复杂的海量数据展开全面而细致的清洗、处理、分析以及解读工作。其工作的核心目标在于为企业的决策制定提供有力依据&#xff0c;推…

基于vite创建的react18项目的单元测试

题外话 最近一个小伙伴进了字节外包&#xff0c;第一个活就是让他写一个单元测试。 嗯&#xff0c;说实话&#xff0c;在今天之前我只知道一些理论&#xff0c;但是并没有实操过&#xff0c;于是我就试验了一下。 通过查询资料&#xff0c;大拿们基本都说基于vite的项目&…

探秘嵌入式位运算:基础与高级技巧

目录 一、位运算基础知识 1.1. 位运算符 1.1.1. 与运算&#xff08;&&#xff09; 1.1.2. 或运算&#xff08;|&#xff09; 1.1.3. 异或运算&#xff08;^&#xff09; 1.1.4. 取反运算&#xff08;~&#xff09; 1.1.5. 双重按位取反运算符&#xff08;~~&#xf…

SpringBoot - 优雅的实现【账号登录错误次数的限制和锁定】

文章目录 Pre需求实现步骤简易实现1. 添加依赖2. 配置文件3. 自定义注解4. AOP切面5. 使用自定义注解&#xff1a;6. 测试 附总结 Pre SpringBoot - 优雅的实现【流控】 需求 需求描述&#xff1a; 登录错误次数限制&#xff1a;在用户登录时&#xff0c;记录每个账号的登录错…

SRIO DRP动态速率配置说明(详细讲解)

目录 一、SRIO IP时钟结构 1、时钟内部结构 2、时钟直接的关系 3、时钟计算原理 ​二、SRIO DRP介绍 ​1、MMCM DRP配置(xapp888) 2、CPLL DRP配置(ug476) 关于CPLL DRP配置详细介绍&#xff1a; GTX中CPLL、QPLL DRP动态配置方法&#xff08;详解&#xff09;-CSDN博客…

动态规划之背包问题

0/1背包问题 1.二维数组解法 题目描述&#xff1a;有一个容量为m的背包&#xff0c;还有n个物品&#xff0c;他们的重量分别为w1、w2、w3.....wn&#xff0c;他们的价值分别为v1、v2、v3......vn。每个物品只能使用一次&#xff0c;求可以放进背包物品的最大价值。 输入样例…

推荐一款龙迅HDMI2.0转LVDS芯片 LT6211UX LT6211UXC

龙迅的HDMI2.0转LVDS芯片LT6211UX和LT6211UXC是两款高性能的转换器芯片&#xff0c;它们在功能和应用上有所差异&#xff0c;同时也存在一些共同点。以下是对这两款芯片的详细比较和分析&#xff1a; 一、LT6211UX 主要特性&#xff1a; HDMI2.0至LVDS和MIPI转换器。HDMI2.0输…

深度学习模型:循环神经网络(RNN)

一、引言 在深度学习的浩瀚海洋里&#xff0c;循环神经网络&#xff08;RNN&#xff09;宛如一颗独特的明珠&#xff0c;专门用于剖析序列数据&#xff0c;如文本、语音、时间序列等。无论是预测股票走势&#xff0c;还是理解自然语言&#xff0c;RNN 都发挥着举足轻重的作用。…

[STM32]从零开始的STM32 FreeRTOS移植教程

一、前言 如果能看到这个教程的话&#xff0c;说明大家已经学习嵌入式有一段时间了。还记得嵌入式在大多数时候指的是什么吗&#xff1f;是的&#xff0c;我们所说的学习嵌入式大部分时候都是在学习嵌入式操作系统。从简单的一些任务状态机再到复杂一些的RTOS&#xff0c;再到最…

《操作系统 - 清华大学》5 -4:虚拟技术

文章目录 0. 虚拟存储的定义1. 目标2.局部性原理3. 虚拟存储的思路与规则4. 虚拟存储的基本特征5. 虚拟页式存储管理5.1 页表表项5.2 示例 0. 虚拟存储的定义 1. 目标 虚拟内存管理技术&#xff0c;简称虚存技术。那为什么要虚存技术&#xff1f;在于前面覆盖和交换技术&#…

2024APMCM亚太杯数学建模C题【宠物行业】原创论文分享

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024 年APMCM亚太地区大学生数学建模竞赛C题的成品论文。 给大家看一下目录吧&#xff1a; 目录 摘 要&#xff1a; 10 一、问题重述 14 二&#xff0e;问题分析 15 2.1问题一 15 2.2问题二 15 2.3问题三…

YOLOv8模型pytorch格式转为onnx格式

一、YOLOv8的Pytorch网络结构 model DetectionModel((model): Sequential((0): Conv((conv): Conv2d(3, 64, kernel_size(3, 3), stride(2, 2), padding(1, 1))(act): SiLU(inplaceTrue))(1): Conv((conv): Conv2d(64, 128, kernel_size(3, 3), stride(2, 2), padding(1, 1))(a…

零基础3分钟快速掌握 ——Linux【终端操作】及【常用指令】Ubuntu

1.为啥使用Linux做嵌入式开发 能广泛支持硬件 内核比较高效稳定 原码开放、软件丰富 能够完善网络通信与文件管理机制 优秀的开发工具 2.什么是Ubuntu 是一个以桌面应用为主的Linux的操作系统&#xff0c; 内核是Linux操作系统&#xff0c; 具有Ubuntu特色的可视…

VScode 连不上远程云服务器

今天下午写代码&#xff0c;打开 VScode 突然发现连不上云服务器了&#xff0c;一开始以为自己密码输错了&#xff0c;试了好多次&#xff0c;依然是这样的 经过查资料发现&#xff0c;应该是版本的自动升级导致的&#xff01;解决方案如下&#xff1a; 1、删除 windows 端的 …

图像分割——区域增长

一 区域增长 图像灰度阈值分割技术都没有考虑到图像像素空间的连通性。区域增长法则正好相反,顾及像素的连接性. 方法&#xff1a;1&#xff09;选择一个或一组种子&#xff1b; 2&#xff09;选择特征及相似性判决准则&#xff1b; 3&#xff09;从该种子开始向外生长&#x…

音视频相关的一些基本概念

音视频相关的一些基本概念 文章目录 音视频相关的一些基本概念RTTH264profile & levelI帧 vs IDRMP4 封装格式AAC封装格式TS封装格式Reference RTT TCP中的RTT指的是“往返时延”&#xff08;Round-Trip Time&#xff09;&#xff0c;即从发送方发送数据开始&#xff0c;到…

春秋云境 CVE 复现

CVE-2022-4230 靶标介绍 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数&#xff0c;这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下&#xff0c;具有管理选项功能 (admin) 的用户可以使用受影响的功能&#xff0c;但是该插件有一个设置允许低权限用…