19. 选择器 {ignore}
[toc]
选择器的作用:帮助你精准的选中想要的一个或多个元素。
1. 简单选择器
- ID选择器
# - 元素选择器
元素名 - 类选择器
. - 通配符选择器
* - 属性选择器
[属性名]、[属性名="属性值"]、[属性名$="属性值"]、[属性名^="属性值"]、[属性名|="属性值"]、[属性名~="属性值"]、[属性名*="属性值"] - 伪类选择器
:link、:visited、:hover、active - 伪元素选择器
::before、::after
上面列的并不全,还有一些css3的没罗列出来。
属性选择器
a[href$="baidu.com"]这个属性选择器表示的含义是:选中带有href属性的a元素,且href属性以baidu.com结尾。 —— 这么做的可以不把href属性写死。
更多细节 ==> 属性选择器 mdn
伪类选择器
用于选中某些元素的某种状态
- link: 超链接未访问时的状态
- visited: 超链接访问过后的状态
- hover: 鼠标悬停状态
- active:激活状态,鼠标按下状态
爱恨法则:l o v e h a t e —— 书写a元素的4种状态时,需要注意顺序;【这个顺序,是由css的层叠性来决定的。】
可以使用chrome浏览器的调试工具,控制元素所处的状态;

link和visited只能用于a元素,hover和active除了用于a元素,还可以用于其他元素。
伪元素选择器
before、after 就是在指定的元素前、后插入一个元素(这个元素是没有名字的)。
示例:
<!DOCTYPE html><html lang="en"><head><title>test</title><style>span::before {content: "《";color: red;}span::after {content: "》";color: red;}</style></style></head><body><p>袁老师和成老师的<span>HTML和CSS</span>课程真的是不错呀!</p></body></html>

2. 选择器的组合
- 并且
挨在一起 - 后代元素
空格 - 子元素
> - 相邻兄弟元素
+ 后面的所有兄弟元素
~~表示选择后面出现的所有兄弟元素,但是,CSS没有提供选择前面出现的所有兄弟元素,这跟浏览器的页面渲染机制有关(涉及到浏览器的内部原理)。
3. 选择器的并列
多个选择器, 用逗号 , 分隔;它只是一个语法糖。
语法糖:表示方便代码的书写,减轻程序员的负担。
小结
简单选择器
- ID选择器
# - 元素选择器
元素名 - 类选择器
. - 通配符选择器
* - 属性选择器
[属性名]、[属性名="属性值"] - 伪类选择器
:link、:visited、:hover、active - 伪元素选择器
::before、::after
- ID选择器
选择器的组合
- 并且
挨在一起 - 后代元素
空格 - 子元素
> - 相邻兄弟元素
+ - 后面的所有兄弟元素
~
- 并且
- 选择器的并列
,
