⼀、全局选择器
1.通配符:全局选择器就是通配符,通配符⽤于选择所有元素。
*{
}
body *{
margin: 0;
padding: 0;
list-style: none;
}
⼆、基础选择器
- 元素选择器:选择全部标签
- id选择器:选择⼀个标签
- class选择器:选择⼀组标签
三、属性选择器
属性选择器:1. 通过标签的属性匹配元素。2.所有的属性选择器都以⽅括号开头
- [属性] {}
2.[属性=属性值] {} - [属性^=属性值] {}
- [属性$=属性值]
[attribute~=value] [title~=flower] 选择带有包含 "flower" ⼀词的 title 属性的所有元素。
[attribute|=value] [lang|=en] 选择带有以 "en" 开头的 lang 属性的所有元素。
[attribute*=value]
示例:将属性为title的所有元素都设置上前景色。
[title]{
color: rgb(81, 150, 182);
}
示例:将属性title的属性值为二级标题的所有元素都设置上背景色。
[title=二级标题]{
color: cadetblue;
}
示例:将属性target的属性值为_blank的所有元素都设置上删除线。
超链接的原有属性的value值要添加引号。
[target="_blank"]{
text-decoration: line-through;
}
示例:将属性href的属性值为http://www.baidu.com的所有元素都设置上前景色。
^:指定了属性名,并且有属性值,属性值是以http://www.baidu.com开头的;
a[href^="http://www.baidu.com"]{
color: black;
}
示例:将属性target的属性值为"_blank"的所有元素都设置上前景色。
$:指定了属性名,并且有属性值,属性值是以_blank结尾的;
a[target$="_blank"]{
color: rgb(188, 95, 95);
}
示例:将属性href的属性值结尾为net的所有元素都添加文字。
$:指定了属性名,并且有属性值,属性值是以net结尾的;
[href$=net]::after{
content: "我爱你";
}
四、伪类选择器
伪类选择器的标志就是单冒号
- :link
- :active
- :hover
- :visited
- :nth-child():匹配第N个⼦元素
- :first-child():匹配第⼀个⼦元素
[target]{/选择带有 target 属性的所有元素。/
样式
}
[target=_blank] 选择带有 target="_blank" 属性的所有元素。
a[href^="https"] 选择其 href 属性值以 "https" 开头的每个 <a> 元素。
a[href$=".pdf"] 选择其 href 属性值以 ".pdf" 结尾的每个 <a> 元素。 - :last-child():匹配最后⼀个⼦元素
- :root : 匹配根元素(根元素:html 或 xml)
- :focus - 匹配拥有焦点状态的元素(部分元素拥有焦点:表单标签、超链接)
- :not() - 匹配不是某个元素的元素
- :checked - 匹配选中的元素
超链接伪类
<style>
/* 1.匹配未点击的超链接 */
a:link{
color: cadetblue;
}
/* 2.匹配悬停/悬浮状态的元素 */
a:hover{
color: #000;
}
/* 3. 匹配激活状态(鼠标按下)的元素*/
a:active{
color: cornflowerblue;
}
/* 4.匹配访问过(抬起鼠标)的超链接 */
a:visited{
color: rgb(255, 0, 0);
}
</style>
</head>
<body>
<a href="#">网易云</a>
</body>
:focus 实列
点击之后触发焦点元素,修改背景色
点击之后触发焦点元素,修改背景色
五、伪元素选择器
- ::before
- ::after
- ::first-line
- ::first-letter
六、组合选择器
组合选择器就是把上⾯这五类组合在⼀起使⽤。
- 分组选择器: 使⽤ 逗号 组合(匹配逗分隔的每⼀项)
- 后代选择器: 使⽤ 空格 组合(匹配当前元素的所有后代元素)
- ⼦元素选择器: 使⽤ > 组合(匹配当前元素的所有⼦元素)
- 相邻兄弟选择器: 使⽤ + 组合(匹配当前元素后⾯的兄弟元素)