1、后代选择器 (包含选择器): 以空格隔开包含关系的元素
2、子选择器 以>隔开父子级元素
3、兄弟选择器 ~ +
1、.tab p[title]:{ color: red} 选择所有带有title属性的p标签
2、.tab p[title = 'name']: { color: red} 选择所有title=name属性的标签
3、.tab p[title ^= 'na'] :{} 选择开头title属性带有na开头的标签
4、.tab p[title$= 'po'] :{} 选择title属性结尾是po的标签
5、.tab p[title *= 'name'] 只要含有name值就行的标签
6、.tab p[title ~= 'name flower'] 包含name的属性的标签
7、.tab p[title |= 'name'] 以name开头的属性的标签
伪类不仅可以作用在a链接上,还可以作用在其他元素上
:link 未访问过的链接
:visited 访问过的链接
:active 鼠标点击的一瞬间
:hover 鼠标悬浮在链接上
:focus 具有焦点的输入元素 innput(将输入的外边框去掉 :focus{ outline: none})
:target 锚点目标选择器
:root 文档的根选择器
:empty 空选择器,没有任何子集的元素
:first-child div下所有孩子中的第一个
:last-child div下所有孩子中的最后一个
:first-of-type div下类型为p的第一个元素
:last-of-type div下类型为p的最后一个元素
:nth-child(2) 选择每个p元素是其父级的第二个子元素, 选择器匹配父元素中的第 n 个子元素,元素类型没有限制。
:nth-last-child(n) 选择器匹配属于其元素的第 N 个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数。
:nth-last-of-type( n )选择器匹配同类型中的倒数第n个同级兄弟元素。
:after 文本伪类选择器,在每个<p>元素之后插入内容
:before 文本伪类选择器,在每个<p>元素之前插入内容
:first-letter 文本伪类选择器,选择每一个<p>元素的第一个字母
:first-line 文本伪类选择器,选择每一个<p>元素的第一行
锚点目标的伪类选择器
首尾元素的伪类选择器
:first-child div下所有的第一个p元素 div p:first-chid
:last-child div下所有的最后一个p元素 div:last-child
:first-of-type 特定 类型 (p元素)的第一个元素 div p:first-of-type
:last-of-type 特定 类型 (p元素)的第一个元素
唯一选择器
:only-child 只有一个孩子的div
:only-of-type div下只有一种孩子类型的选择器
表单上的伪类选择器
文本的伪类选择器
文本伪类表单
知识点补充:
!important : 强制权重优先级
浏览器默认font-size: 14px
可继承元素:color、font-size、font-family
通配符的权重:0
继承的权重: NULL 0>NULL
总结排序:!important >行内样式>ID选择器 >类选择器 >标签 、伪类>通配符* >继承 >浏览器默认属性
做前端一定要记住:nth-child(2)这个选择器,它可以帮你轻松选择你想要的标签并给与修改添加样式
下面通过几个例子说明,相信你一看就明白
:nth-child(2)表示选取第几个标签,”2可以是你想要的数字”
:nth-child(n+4)选取大于等于4标签,”n”表示从整数
:nth-child(-n+4)选取小于等于4标签
:nth-child(2n)选取偶数标签,2n也可以是even
:nth-child(2n-1)选取奇数标签,2n-1可以是odd
:nth-child(3n+1)自定义选取标签,3n+1表示”隔二取一”
:last-child选取最后一个标签
:nth-last-child(3)选取倒数第几个标签,3表示选取第3个
## CSS选择器# 标签选择器
# id选择器
# 类选择器
# 后代选择器
# 子元素选择器
# 交集选择器
# 并集选择器
# 兄弟选择器(相邻兄弟选择器/通用兄弟选择器)
# 序选择器(CSS3中最具代表性)
# 属性选择器
# 通配符选择器
# 伪元素选择器
标签选择器
1.什么是标签选择器?
作用:根据指定的标签名称,在当前界面中找到所有该名称的标签,然后设置属性
2.格式:
标签名称{
属性: 值
}
注意点:
1.标签选择器选中的是当前界面中所有的标签,而不能单独选中某一个标签
2.标签选择器无论藏得多深都能被选中
3.只要是HTML中的标签就可以作为标签选择器
id选择器
1.什么是id选择器?
作用:根据指定的id名称找到对应的标签,然后设置属性
格式:
#id名称{
属性: 值
}
注意点:
1.每个HTML标签都有一个属性叫做id,也就是说每个标签都可以设置id
2.在同一个界面的id名称是不可以重复的
3.在编写id选择器时一定要在id名称前面加上#
4
id的名称是有一定的规范的
4.1.if的名称只能由字母/数字/下划线组成
4.2.id名称不能以数字开头
4.3id名称不能是HTML标签的名称
4.4在企业开发中一般情况下如果仅仅是为了设置样式,我们不会使用id,因为前端开发中是留给js使用的
类选择器
什么是类选择器?
作用:根据指定的类名称找到对应的标签,然后设置属性
格式:
.类名称{
属性: 值
}
注意点:
1.每个HTML标签都有一个属性叫做class,也就是说每个标签都可以设置class
2.在同一个界面的class名称是可以重复的
3.在编写class选择器时一定要在class名称前面加上.
4.类名的命名规范和id名称的命名规范一样
5.类名解释专门用来给某个特定的标签设置样式的
6.在HTML中每个标签可以同时绑定多个类名
格式:
<标签名称 class=“类名1 类名2 类名3”>
错误写法
id和class的区别?
1.1
id相当于人的身份证不可以重复
class相当于人的名称可以重复
1.2
一个HTML标签只能绑定一个id名称
一个HTML表圈可以绑定多个class名称
2.id选择器是以#开头
class选择器以.开头
3.在企业开发中到底使用id选择器还是用class选择器
id选择器一般是给js用的,除非特殊情况,否则不要用id去设置样式
4.在企业开发中一个开发人员对类的使用可以看出这个开发人员的技术水平
后代选择器
什么是后代选择器?
-作用:找到指定标签的所有特定的后代标签,设置属性
-格式:
标签名称1 标签名称2{
属性: 值
}
先找到名称叫做标签名称1的标签,然后再在这个标签下面去查找所有名称叫做标签名称2的标签,然后再设置属性
-注意点:
1.后代选择器必须用空格隔开
2.后代不仅仅是儿子,也包括孙子/重孙子.只要最终是放到指定标签中的都是后代
3.后代选择器不仅仅可以使用标签名称还可以使用其他选择器
子元素选择器
什么是子元素选择器?
-作用:找到所有标签中特定的直接子元素,然后设置属性
-格式:
标签名称1>标签名称2{
属性: 值
}
先找到名称叫做”标签名称1”的标签,然后再这个标签中找到所有的直接子元素名称叫做”标签名称2”的元素
-注意点:
1.子元素选择器只会查找儿子,不会查找其他被嵌套的标签
2.子元素选择器,之间需要用>连接,而且不能有空格
3.子元素选择器不仅仅可以使用标签名称还可以用其他选择器
4.子元素选择器可以通过>符号一直延续下去
1.后代选择器和子元素选择器之间的区别?
1.1
后代选择器使用空格作为连接符号
子元素选择器使用>作为连接符号
1.2
后代选择器会选中指定标签中,所有的特定后代标签
子元素选择器只会选中指定标签中,所有的特定直接标签
2.后代选择器和子元素选择器之间的共同点
2.1
后代选择器和子元素选择器都可以使用标签名称/id名称/class名称来作为选择器
2.2
后代选择器和子元素选择器都可以通过各自的连接符号一直延续下去
3.在企业开发中如何选择
交集选择器
什么是交集选择器?
-作用:给所有选择器选中的标签中,相交的那部分标签设置属性
-格式:
选择器1选择器2{
属性: 值
}
-注意点:
1.选择器1和选择器2之间没有任何的连接符号
2.选择器可以使用标签的名称/id名称/class名称
3.交集选择器仅仅作为了解,企业开发中用的并不多
并集选择器
什么是并集选择器?
-作用:给所有选择器选中的标签设置属性
格式:
选择器1,选择器2{
属性: 值
}
注意点:
1.并集选择器必须使用,来连接
2.2.选择器可以使用标签的名称/id名称/class名称
兄弟选择器
1.相邻兄弟选择器 CSS2
-作用:给指定选择器后面[紧跟]的那个选择器选中的标签设置属性
格式:
选择器1+选择器2{
属性: 值
}
注意点:
1.相邻兄弟选择器必须通过+连接
2.相邻兄弟选择器只能选中紧跟其后面的那个标签,不能选中被隔开的标签
2.通用兄弟选择器 CSS3
-作用:给指定的选择器后面的所有选择器选中的所有标签都设置属性
-格式:
选择器1~选择器2{
属性: 值
}
-注意点:
1.通用兄弟选择器必须用~连接
2.通用兄弟选择器选中的是指定选择器后面某个选择器选中的标签后面的所有标签
序选择器(CSS3中新增的选择器中最具代表性)
1.同级别的第几个
:first-child 选中同级别中的第一个标签
:last-child 选中同级别中的最后一个标签
:nth-child(n) 选中同级别中的第n个标签
:nth-last-child(n) 选中同级别中的倒数第n个标签
:only-child 选中父元素中唯一的子元素
:nth-child(odd) 奇数 选中同级别中的所有奇数个标签
:nth-child(even) 偶数 选中同级别中的所有偶数个标签
:nth-child(xn+y) 选中同级别中的所有的用户自定义的(xn+y)个标签
x和y是用户自定义的,而n是一个计数器,从0开始递增 有多少个标签n就递增多少次
注意点:不区分类型
2.同类型的第几个
:first-of-type 选中同级别中同类型的第一个标签
:last-of-type 选中同级别中同类型的最后一个
:nth-of-type(n) 选中同级别中同类型的第n个标签
:nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签
:only-of-type 选中父元素中唯一类型的某个标签
属性选择器
什么是属性选择器?
作用: 根据指定的属性名称找到对应标签,然后设置属性
格式:
[attribute]
作用:根据指定的属性名称找到对应的标签,然后设置属性
[attribute=value]
作用:找到有指定属性,并且属性的取值等于value的标签,然后设置属性
最常见的应用场景,就是用于区分input属性
1.属性的取值是以什么开头的
[attribute|=value] CSS2
[attribute^=value] CSS3
两者之间的区别:
CSS2中的只能找到value开头并以-和其他内容隔开的标签,而CSS3可以找到以value开头的所有标签
2.属性的取值是以什么结尾的
[attribute$=value] CSS3
3.属性的取值是否包含某个特定的值的
[attribute~=value] CSS2
[attribute*=value] CSS3
两者之间的区别:
CSS2中的只能找到独立的单词,也就是说value用空格和其他内容隔开的标签,而CSS3可以找到包含value的所有标签
通配符选择器
什么是通配符选择器?
-作用:给当前界面上所有的标签设置属性
-格式:
*{
属性: 值
}
-注意点:
由于通配符是设置界面上所有的标签的属性,所以在设置前会遍历所有的标签,如果当前界面上的标签比较多,那么性能会比较差,所以企业开发中一般不会使用通配符选择器
1.什么是伪元素选择器?
伪元素选择器作用就是给指定标签的内容前面添加一个子元素或者给指定标签的内容后面添加一个子元素
格式:
给指定标签的内容前面添加一个子元素
标签名称::before {
属性名称:值
}
给指定标签的内容后面添加一个子元素
标签名称::before {
属性名称:值
}