还有很多很多选择器,这里仅列出常用的
目录
- 1. 标签选择器
- 2. 类选择器
- 3. id选择器
- 4. 通配符选择器
- 5. 后代选择器
- 6. 子代选择器
- 7. 并集选择器
- 8. 兄弟选择器
- 9. focus伪类选择器
- 10. 链接伪类选择器
- 11. 属性选择器
- 12. 结构伪类选择器
- 13. 伪元素选择器
1. 标签选择器
- 直接根据标签名选择即可
div {
这里书写属性
}
2. 类选择器
- 被选择标签需要有class属性
.xx {
使用'.属性名'来选择标签
}
3. id选择器
- 被选择标签需要有id属性
#xx {
使用'#属性名'来选择标签
}
4. 通配符选择器
- 选择全部标签,一般用来初始化页面元素
* {
margin: 0;
padding: 0;
}
5. 后代选择器
div a span {
选择div下面的a下面的span
}
6. 子代选择器
div > a {
选择div下一级的a元素,仅针对'下一级'
}
7. 并集选择器
div a,
span a {
}
8. 兄弟选择器
- 操作对象是与该元素相同父亲,且相邻的元素
- 选中该元素的兄弟元素
a + span {
选择a元素的兄弟元素span
}
9. focus伪类选择器
a:focus {
选择已经获取焦点的标签
}
input:focus {
}
10. 链接伪类选择器
- 如果混合使用,需要按照 " link、visited、hover、active " 的顺序书写,否则浏览器可能无法正常显示这4种样式
a:link {
选择鼠标未点击的
}
a:visited {
选择鼠标已经点击过的
}
a:hover {
选择鼠标经过
-- 该伪类可以定义任何一个元素在鼠标经过时的样式
}
a:active {
选择鼠标点击未弹开
}
11. 属性选择器
E[YY] {
选择有YY属性的元素
}
E[YY = "ZZ"] {
选择有YY属性,且属性值等于ZZ的元素
}
E[YY ^= icon] {
选择有YY属性,且属性值是以icon开头的元素
}
E[YY $= icon] {
选择有YY属性,且属性值是以icon结尾的元素
}
E[YY *= icon] {
选择有YY属性,且属性值包含icon的元素
}
12. 结构伪类选择器
- n的说明:本质上就是选中第几个子元素
当n等于什么时 | n的意义 |
---|---|
1 2 3 … n | 选中第几个子元素 |
even(偶数)、odd(奇数) | 选中全部的奇数或偶数 |
公式 | 2n(0 2 4 6 … )、5-n(5 4 3 2 1 0) 、、、、、、 |
n=0或n>max | 忽略不计 |
(1) child选择器
- 功能:选择有父级元素的第 n 个 XX元素,先关注是第几个孩子,再判断类型是否符合
- 先找到有父级元素的第 n 个 XX元素,之后判断是不是指定元素
- 是,选择这个元素
- 不是,不选择这个元素
li:first-child {
找到同一级中的第 1 个子元素
判断是不是 li
}
li:last-child {
找到同一级中的 最后1个 子元素
判断是不是 li
}
li:nth-child(n) {
找到同一级中的第 n 个子元素
判断是不是 li
}
(2) type选择器
- 与child选择器功能一样,只不过type是先找出所有符号类型要求的元素,再关注第几个
li:first-of-type {
}
li:last-of-type {
}
li:nth-of-type(n) {
}
13. 伪元素选择器
- 必须要有 content 属性,否则不起效果
- before 在内容前面,after 在内容后面
- before 和 after 创建的是一个元素,但是属于行内元素
- 伪元素和标签选择器一样,权重为 1
- 创建出来的元素在 Dom 中查找不到,所以称为伪元素
p:before {
content: '前面前面';
color: red;
}
p:after {
content: '后面后面';
color: yellow;
}