Home CSS 三大特性
Post
Cancel

CSS 三大特性

CSS 三大特性:继承性、层叠性、优先级

继承性

子级默认继承父级的文字控制属性,若子级有自己的样式则不继承

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style>
	body {
		font: 30px/0.5 楷体;
		color: aqua;
	}
</style>

<body>
	<div>div</div>
	<p>p</p>
	<span>span</span>
		
	<a href="#">不继承颜色</a>
</body>

层叠性

选择器类型相同时:

  • 相同的属性会覆盖:后面的 CSS 属性覆盖前面的 CSS 属性
  • 不同的属性会叠加:不同的 CSS 属性都生效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style>
	div {
		color: red;
		font-size: 30px;
	}
	div {
		color: aqua;
		font-weight: 700;
	}
</style>

<div>
    颜色为 aqua,字号 30px,加粗
</div>

优先级

当一个标签使用了多种选择器时,优先级高的样式生效,优先级:

通配符选择器 < 标签选择器 < 类选择器 < id 选择器 < 行内样式 < !important

一般不使用 !important ,下例不使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<style>
    #app {
        color: orange;
    }
    .box {
        color: blue;
    }
    div {
        color: red;
    }
    * {
        color: purple;
    }
</style>

<div>标签选择器 red</div>
<div class="box">类选择器 blue</div>
<div class="box" id="app">id 选择器 orange</div>
<div class="box" id="app" style="color: aqua;">行内样式 aqua</div>

使用 !important

1
2
3
4
5
6
7
<style>
    div {
        color: aqua !important;
    }
</style>

<div style="color: blue">aqua</div>

复合选择器叠加优先级

(行内样式,id选择器个数。类选择器个数,标签选择器个数) 从左到右依次比较个数,同一级个数多的优先级高,若相同则比较下一级

若有 !important 则优先级最高,继承的优先级最低

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<style>
    /* (0, 0, 2, 1) */
    .c1 .c2 div {
        color: blue;
    }
    /* (0, 1, 0, 1) */
    div #box3 {
        color: red;
    }
    /* (0, 1, 1, 0) */
    #box1 .c3 {
        color: aqua;
    }
</style>

<div class="c1" id="box1">
    <div class="c2" id="box2">
        <div class="c3" id="box3">
            aqua
        </div>
    </div>
</div>

例 2

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
<style>
    /* (0, 2, 0, 0) */
    #father #son {
        color: aqua;
    }
    /* (0, 1, 1, 1) */
    #father p.c2 {
        color: black;
    }
    /* (0, 0, 2, 2) */
    div.c1 p.c2 {
        color: red;
    }
    /* 继承 */
    #father {
        color: blue !important;
    }
    /* 继承 */
    div#father.c1{
        color: yellow;
    }
</style>

<div class="c1" id="father">
    <div class="c2" id="son">
        aqua
    </div>
</div>

Emmet 写法

即代码的简写方式,输入缩写 VS Code 会自动生成对应的代码

对于 HTML

说明 Emmet 效果
类选择器 标签名.类名 <div class="box"></div>
id 选择器 标签名#id名 <div id="app"></div>
同级标签 div+p <div></div><p></p>
父子级标签 div>p <div><p></p></div>
多个相同标签 span*3 <span></span><span></span><span></span>
有内容的标签 div{内容} <div>内容</div>

对于 CSS 多数为单词首字母

h500+w300+bgc 会变为

1
2
3
4
5
div {
    width: 500px;
    height: 300px;
    background-color: #fff;
}
This post is licensed under CC BY 4.0 by the author.

CSS 选择器

CSS 文字控制属性