Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Linux

  • Java

  • 微服务笔记

  • MySQL

  • Nginx

  • HTML

  • CSS

    • CSS基本介绍
    • 字体样式
    • 选择器
    • CSS 外观属性
    • 引入 CSS 样式表
    • CSS 复合选择器
    • CSS 背景(background)
    • CSS 三大特性
      • CSS 三大特性
        • CSS 层叠性
        • CSS 继承性
        • CSS 优先级
        • 优先级
        • CSS 特殊性(Specificity)
        • 权重叠加
        • 继承的权重为 0
    • 盒子模型(CSS 重点)
    • Flex布局
  • JavaWeb

  • Vue

  • Git

  • 开发规范

  • SpringCloud微服务权限系统

  • bug

  • Software

  • ProgramNotes
  • CSS
Geeks_Z
2022-10-26
目录

CSS 三大特性

CSS 三大特性

层叠性、继承性、优先级

CSS 层叠性

CSS 层叠性即 CSS 样式的叠加,多个样式中指定了同一属性时,以最后一个样式中的属性值为准。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v28-CSS多背景图.html</title>
    <style>
        body {
            background-color: #C5ECFF
        }

        div {
            color: green;
            font: 18px "Microsoft YaHei";
        }

        div {
            color: red;
        }
    </style>
</head>
<body>
<div>
    多个样式中的指定了相同属性,以最后一个样式中的属性值为准
</div>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

CSS 继承性

  • 父标签中的样式会对子标签生效,即继承性
  • 可以被子标签继承的样式属性有:以 text- 、font-、line- 三者开头的属性,color 属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v28-CSS多背景图.html</title>
    <style>
        body {
            background-color: #C5ECFF
        }

        div {
            color: red;
            font: 18px "Microsoft YaHei";
        }

    </style>
</head>
<body>
<div>
    <p>父标签的样式会对子标签生效——继承性</p>
</div>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

CSS 优先级

优先级

定义 CSS 样式时,经常会出现两个或多个规则应用在同一个标签上,此时就存在优先级的问题:

  • 继承样式的权重为 0 , 即在嵌套结构中,不管父元素样式的权重多大,被子元素继承时,它的权重都为 0。也就是说,子元素定义的样式会覆盖继承的样式。
  • 行内样式优先,应用 style 属性的元素,其行内样式的权重非常高,可以理解为大于 100,总之,它拥有比上面提高的选择器都大的优先级。
  • 权重相同时,CSS 遵循就近原则。也就是说靠近元素的样式具有最大的优先级,或者说排在最后的样式优先级最大。
  • CSS 定义了一个 !important 命令,该命令被赋予最大的优先级。也就是说不管权重如何以及样式位置的远近,!important 都具有最大优先级。

CSS 特殊性(Specificity)

关于 CSS 权重,我们需要一套计算公式去计算,这就是 CSS Specificity, 我们称为 CSS 特性 或 非凡性。它是一个衡量 CSS 值优先级的一个标准,具体规范如下:

优先级 用一个四位的数字串来表示,更像四个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。

CnPeng: 直白的说就是,1 的位置越靠左,权重越大,优先级越高。

类别 优先级
标签选择器 0,0,0,1
类/伪类选择器 0,0,1,0
id 选择器 0,1,0,0
行内样式选择器 (标签内直接定义 style) 1,0,0,0
!important ∞ 无穷大
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v28-CSS多背景图.html</title>
    <style>
        .c-blue {
            /*类和伪类选择器的优先级相同,倒数第二,高于标签选择器*/
            color: pink;
        }

        div {
            /*标签选择器,优先级最低*/
            color: red;
            font: 18px "Microsoft YaHei";
        }

        #id-one {
            /* id  选择器优先级高于类和伪类选择器 */
            color: #00FF00;
        }

        div{
            /*后缀 !important 的优先级最高*/
            color: black !important;
        }
    </style>
</head>
<body>
<!-- style="color:orange" 表示行内样式,优先级排第二,次于 !important -->
<div class="c-blue" id="id-one" style="color: orange">CSS 优先级</div>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

权重叠加

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v28-CSS多背景图.html</title>
    <style>
        li {
            /* 权重系数为:0001*/
            color: red;
        }

        ul li {
            /*权重系数为 0001+0001=0002 ——权重叠加*/
            color: green;
        }

    </style>
</head>
<body bgcolor="#C5ECFF">

<nav>
    <ul>
        <li>李白</li>
        <li>杜甫</li>
        <li>李贺</li>
    </ul>
</nav>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

权重叠加示例:

选择器 叠加后的权重 说明
div ul li 0,0,0,3
.nav ul li 0,0,1,2 0,0,1,0 + 0,0,0,1 + 0,0,0,1 = 0,0,1,2
a:hover 0,0,0,1 0,0,0,1 + 0,0,1,0 = 0,0,1,1
.nav a 0,0,1,1 0,0,1,0 + 0,0,0,1 = 0,0,1,1
#nav p 0,1,0,1 0,1,0,1 + 0,0,0,1 = 0,1,0,1

注意:

  • **权重叠加时,数位之间没有进制。如:0,0,0,5 + 0,0,0,5 = 0,0,0,10 , 而不是 0,0,1,0。**也就是说, 10个 div 叠加后的权重并不会高于一个 类选择器。
  • 继承的权重是 0

权重总结(自上往下优先级依次降低)

  • 使用 !important 声明的选择器
  • 内嵌在标签中的 style 声明样式
  • ID 选择器
  • 类选择器、伪类选择器、属性选择器、伪元素选择器
  • 元素选择器(即 标签选择器)
  • 通用选择器
  • 同一类选择器遵循就近原则
  • 权重是优先级的算法,叠加是优先级的表现。

继承的权重为 0

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v28-CSS多背景图.html</title>
    <style>

        li {
            /*权重系数为 0001+0001=0002 ——权重叠加*/
            color: green;
        }

        .nav-style{
            color: red;
        }

        p {
            color: pink;
        }

    </style>
</head>
<body bgcolor="#C5ECFF">

<nav class="nav-style">
    <ul>
        <li>继承的权重为0:li 会继承设置在 nav 上的样式,但因为继承的权重为0,
            并且 li 设置了单独的样式,所以,li 中内容的颜色为 li 样式中设置的颜色。</li>
    </ul>
</nav>

<p>
    <a href="#">选择器继承</a>
</p>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

#CSS
上次更新: 2025/02/26, 08:57:57
CSS 背景(background)
盒子模型(CSS 重点)

← CSS 背景(background) 盒子模型(CSS 重点)→

最近更新
01
RAIL
02-26
02
IOCTF
02-25
03
DGM
02-25
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式