选择器:按照一定的规则选出符合条件的元素,为之添加CSS样式。
通配符选择器
选中所有的元素
一般用来给所有元素作一些通用性的设置
*{margin:0;padding:0;}
元素选择器
元素选择器(type selectors), 使用元素的名称;
可以选中对应的所有元素
id选择器
id选择器 (#id名);
具有唯一性,id名不能重复。
类选择器
类选择器 (.类名);
可以给多个元素设置同样的类名
后代选择器
后代选择器一: 选中所有的后代
语法:选择器之间以空格分割;
<div class="box">
<span>11111</span>
<div>
<p>我是p元素</p>
<span>22222</span>
</div>
</div>
.box span {
color: red;
}

💎 后代选择器二: 选中下一级的后代
选择器之间以 > 分割;
<div class="box">
<span>11111</span>
<div>
<p>我是p元素</p>
<span>22222</span>
</div>
</div>
.box > span {
color: blue;
}

选择器组
交集选择器: 需要同时符合两个选择器条件;
- 在开发中通常为了精准的选择某一个元素;
<body> <div class="box">11111</div> <div>222222</div> <p class="box">33333</p> </body>
- 在开发中通常为了精准的选择某一个元素;
div.box{
color: red;
}

并集选择器:给多个元素设置相同的样式;
两个选择器以上 , 隔开
伪类选择器
选择处于特定状态的元素
:link、:visited、:hover、:active、:focus;
应用举例
- a:link 未访问的链接(只用于a元素);
- a:visited 已访问的链接(只用于a元素);
- a:hover 鼠标挪动到链接上;
- a:active 激活的链接(鼠标在链接上长按住未松开)
使用注意
- :hover必须放在:link和:visited后面才能完全生效;
- :active必须放在:hover后面才能完全生效;
- 建议编写顺序 :link、:visited、:hover、:active;
除了a元素, :hover、:active也能用在其他元素上
:focus
表示获得焦点的元素(如表单输入)。当用户点击或触摸元素或通过键盘的 “tab” 键选择它时会被触发,:focus也适用于a元素。
编写顺序建议 :link、:visited、:focus、:hover、:active
结构伪类选择器
:nth-child(1)
- 是父元素中的第1个子元素
:nth-child(2n + 1) :nth-child(odd)
- 父元素中的第奇数个子元素
:nth-child(2n) :nth-child(even)
- 父元素中的第偶数个子元素
:nth-child(-n + 2)
- 代表前2个子元素
:nth-of-type()和:nth-child()的区别
用法相似似,不同点是:nth-of-type()计数时只计算同种类型的元素
其他伪类
:first-child,等同于:nth-child(1)
:last-child,等同于:nth-last-child(1)
:first-of-type,等同于:nth-of-type(1)
:last-of-type,等同于:nth-last-of-type(1)
:root,根元素,就是HTML元素
:empty 代表里面完全空白的元素
伪元素
常用的伪元素:::before ::after
::before和::after用来在一个元素的:内容之前或之后插入其他内容可以是文字、图片) 常通过content 属性为一个元素添加修饰性的内容。来
伪元素默认为 inine-block level element
选择器权重
!important:10000
内联样式:1000
id选择器:100
类选择器、伪类选择器、属性选择器:10
元素选择器、伪元素:1
通配符:0
h1+p::after 权重:1+1+1=3 (元素选择器+元素选择器+伪元素)
