CSS(3)——各类选择器
1.CSS选择器(selector)
出现原因:开发中经常需要找到特定的网页元素进行设置样式,如何找到特定的那个元素
什么是CSS选择器:按照一定的规则选出符合条件的元素,为之添加CSS样式
归类如下:
- 通用选择器(universal selector)
- 元素选择器(type selectors)
- 类选择器(class selectors)
- id选择器(id selectors)
- 属性选择器(attribute selectors)
- 组合(combinators)
- 伪类(pseudo-classes)
- 伪元素(pseudo-elements)
2.通用选择器
所有的元素都会被选中,效率比较低,尽量不要使用,因为他会遍历所有的元素,包括没有使用到的元素,消耗性能。
一般用来给所有元素作一些通用性的设置,比如内边距、外边距,比如重置一些内容。*是通配符。
*{
width:300px ;
}
3.简单选择器(重要)
简单选择器是开发中用的最多的选择器:
- 元素选择器(type selectors), 使用元素的名称
div{
width:300px ;
}
p{
width:300px ;
}
- 类选择器(class selectors), 使用 .类名
.name{
color: white;
background-color:orange;
font: bold 30px/30px serif;
}
- id选择器(id selectors), 使用 #id
#index{
color:#f00;
}
补充—id注意事项:一个HTML文档里面的id值是唯一的,不能重复
- id值如果由多个单词组成,单词之间可以用中划线-、下划线_连接,也可以使用驼峰标识boxOne或BoxOne
- 最好不要用标签名作为id值
- 中划线又叫连字符(hyphen)
4.属性选择器(不常用)
拥有某一个属性 [att],属性等于某个值 [att=val]
其他了解的(不用记)
-
[attr*=val]:属性值包含某一个值val -
[attr^=val]:属性值以val开头 -
[attr$=val]:属性值以val结尾 -
[attr|=val]:属性值等于val或者以val开头后面紧跟连接符- -
[attr~=val]:属性值包含val, 如果有其他值必须以空格和val分割
[title]{
color: aliceblue;
}
[title=div]{
color: antiquewhite;
}
5.后代选择器(重要)
需求:只给某一个元素的所有后代元素添加css样式
-
后代选择器一: 所有的后代(直接/间接的后代),选择器之间以空格分割
-
后代选择器二: 直接子代选择器(必须是直接子代),选择器之间以 > 分割
6.兄弟选择器(用的不多,特殊场景)
-
兄弟选择器一:相邻兄弟选择器(代码上紧挨着的),使用符号 + 连接
-
兄弟选择器二: 普遍兄弟选择器 ~(所有的兄弟),使用符号 ~ 连接
7.选择器组 (重要)
-
交集选择器: 需要同时符合两个选择器条件(两个选择器紧密连接),在开发中通常为了精准的选择某一个元素
-
并集选择器: 符合一个选择器条件即可(两个选择器以,号分割),在开发中通常为了给多个元素设置相同的样式
8.伪类
伪类是选择器的一种,它用于选择处于特定状态的元素,比如我们经常会实现的,当手指放在一个元素上时, 显示另外一个颜色。
div:hover{
color:red;
}
常见的伪类有
- 动态伪类(dynamic pseudo-classes):link、:visited、:hover、:active、:focus
- 目标伪类(target pseudo-classes) :target(可以用于匹配url的片段)
- 语言伪类(language pseudo-classes):lang( )
:lang(en){}
-
元素状态伪类(UI element states pseudo-classes)
:enabled、:disabled、:checked -
结构伪类(structural pseudo-classes)(后续学习)
-
:nth-child( )、:nth-last-child( )、:nth-of-type( )、:nth-last-
of-type( ) -
:first-child、:last-child、:first-of-type、:last-of-type
-
:root、:only-child、:only-of-type、:empty、
-
-
否定伪类(negation pseudo-classes)(后续学习) :not()
:not(.span){}
所有的伪类: https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes
9.动态伪类
使用举例
-
a:link 未访问的链接
-
a:visited 已访问的链接
-
a:hover 鼠标挪动到链接上(重要)
-
a:active 激活的链接(鼠标在链接上长按住未松开):focus
-
:focus——>指当前拥有输入焦点的元素(能接收键盘输入),文本输入框一聚焦后,背景就会变红色。因为链接a元素可以被键盘的Tab键选中聚焦,所以:focus也适用于a元素
使用注意
- hover必须放在:link和:visited后面才能完全生效
- active必须放在:hover后面才能完全生效
- 除了a元素,:hover、:active也能用在其他元素上
- 动态伪类编写顺序建议为: :link、:visited、:focus、:hover、:active
- 直接给a元素设置样式,相当于给a元素的所有动态伪类都设置了,相当于a:link、a:visited、a:hover、a:active、a:focus的color都是red
浙公网安备 33010602011771号