# 选择器和优先级


首先,选择器可分为

  • ID选择器
  • 类选择器
  • 属性选择器
  • 伪类选择器
  • 伪元素选择器
  • 标签选择器
  • 通配符选择器
  • 后代选择器
  • 交集选择器
  • 并集选择器

# ID选择器

#app {
    width: 100%;
    height: 100%;
}
1
2
3
4

# 类选择器

.app {
    width: 100%;
    height: 100%;
}
1
2
3
4

# 属性选择器

input[type="text"] {
    color: #000;
}
1
2
3

# 伪类选择器

a:link {
    color: #000;
}

a:hover {
    color: yellow;
}
1
2
3
4
5
6
7

# 伪元素选择器

.app: before{
    content: 'before';
}

.app: after{
    content: 'after';
}
1
2
3
4
5
6
7

# 标签选择器

选择器是某个HTML元素,比如 p、h1、em、a

html {
    font-size: 14px;
}

h1 {
    font-size: 32px;
}
1
2
3
4
5
6
7

# 通配符选择器

* {
    font-size: 14px;
}
1
2
3

# 后代选择器

/* 子节点,第一层级 */
.ul > li {
    list-style: none;
}
/* .ul下的所有p,不论层级 */
.ul p {
    font-size: 12px;
}
1
2
3
4
5
6
7
8

# 交集选择器

当在div元素上写class="app"该属性才生效

div.app {
    font-size: 14px;
}
1
2
3

# 并集选择器

p, h1, .one, #app {
    color: red;
}
1
2
3

# 序选择器

ul li:first-child {
    margin-top: 0;
}

ul li:last-child {
    margin-top: 10px;
}

ul li:nth-child(2) {
    margin-top: 10px;
}

ul li:nth-child(3n) {
    margin-top: 10px;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 优先级

  • 最近的祖先样式比其他祖先样式优先级高。
  • 选择器优先级:ID选择器 > 类选择器 > 属性选择器 > 伪类选择器 > 伪元素选择器 > 标签选择器 > 通配选择器
  • 内联样式 > ID选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器
  • 计算选择符中 ID 选择器的个数a,计算选择符中类选择器、属性选择器以及伪类选择器的个数之和b,计算选择符中标签选择器和伪元素选择器的个数之和c。按 a、b、c的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中a、b、c都相等,则按照"就近原则"来判断。
上次更新: 8/8/2019, 7:56:42 PM