概念
选择器用来指定网页上我们想要样式化的HTML元素
种类
1、元素选择器
指向所有的HTML元素
1  | h1 {  | 
2、类选择器
使用前提:为元素定义一个类
代码示例:
1  | .box {  | 
使用类选择器选择指向应用了一个类的特定元素。
1  | span.highlight{  | 
多个类被应用的时候指向一个元素
1  | <div class="notebox">  | 
3、ID选择器
使用前提:为元素指定一个ID
代码示例:
1  | #unique {  | 
使用id选择器指定有特定id的特定元素
1  | #one {  | 
4、全局选择器
选择文档中所有的内容,如果是紧随在其他元素以及邻代运算符之后,是父元素中的所有内容
1  | * {  | 
使用全局选择器,让选择器更容易阅读
如果想选择article元素的第一子元素,可以使用:first-child
1  | article :first-child{  | 
这容易与article:first-child混淆,article:first-child选择作为其他元素的第一子元素的article元素
为了避免这种情况,可以加入全局选择器,表示选贼article下的任何第一子元素
1  | article *:first-child{  | 
标签属性选择器
1、根据元素上的某个标签属性的存在与否以选择元素
代码示例:
1  | a[title] {  | 
2、根据一个有特定值的标签属性是否存在来选择
代码示例:
1  | a[href="https://example.com"] {  | 
伪类与伪元素
下面的选择器包含伪类,用来样式化一个元素的。
:hover伪类会在鼠标指针悬浮到一个元素的时候选择这个元素
1  | a:hover {  | 
伪元素选择器,选择一个元素的某个部分而不是元素自己。
::first-line是会选择一个元素的第一行
1  | p::first-line {  | 
特殊技巧
选择器列表
如果有多个相同样式的CSS选择器,那么这些单独的选择器可以被混编为一个“选择器列表”,这样的化规则就可以应用到所有的单个选择器上了
1  | h1 {  | 
上面的css可以简化为:
1  | h1, .special {  | 
注意:如果存在任何一个选择器无效(存在语法错误),那么整个选择器都会被忽略
后代选择器
用单个空格字符,组合两个选择器,表示box下面的所有p元素
1  | # 选择box类下面的p元素  | 
子代选择器
最后一组选择器可以将其他选择器组合起来,更复杂的选择元素。
运算符 (>) 选择了artical元素的初代子元素
1  | article > p {  | 
邻接兄弟
邻接兄弟选择器 (+)用来选择旁边的物件
选择所有在p元素之后的img元素 p + img
1  | h1 + p {  | 
通用兄弟
选中一个兄弟元素,即使他们不相邻,可以使用兄弟关系选择器~,选中所有元素p之后的同级img元素
1  | p ~ img  |