CSS选择器及三大特性

CSS选择器及三大特性

标签(空格分隔): H5+CSS


[TOC]

CSS

CSS选择器

  • 标签选择器
标签{}
  • id选择器
#id名{}
  • 类选择器
.类名{}
  • 后代选择器
选择器1 选择器2{}
  • 子元素选择器
选择器1>选择器2{}
  • 交集选择器
选择器1选择器2{}
  • 并集选择器
选择器1,选择器2{}
  • 兄弟选择器
    • 相邻兄弟选择器(给指定选择器后面紧跟的那个选择器选中的标签设置属性)
    • 通用兄弟选择器(给指定选择器后面所有的所有选择器选中的所有标签设置属性)

eg: 相邻兄弟选择器

选择器1+选择器2{}

eg:通用兄弟选择器

选择器1~选择器2{}
  • 序选择器
    • 同级别的第几个
    • 同级别同类型的第几个
## 同级别中的选择器
1. first-child 选中同级别中的第一个标签
2. last-child 选中同级别中的最后一个标签
3. nth-child(n) 选中同级别中的第n个标签
4. nth-last-child(n) 选中同级别中的倒数第n个标签
5. nth-child(odd){} 选中奇数行的标签
6. nth-child(even){} 选中偶数行的标签

## 同级别类型的选择器

1.first-of-type 选中同级别同类型的第一个标签
2.last-of-type 选中同级别同类型的最后一个标签
3.nth-of-type(n) 选中同级别同类型的第n个标签
4.nth-last-of-type(n) 选中同级别同类型的倒数第n个标签
5。nth-of-type(odd){} 选中同级别同类型的奇数行的标签
6.nth-of-type(even){} 选中同级别同类型的偶数行的标签

或者也可以通过

nth-child(2n+1)
nth-of-type(2n+1)
等来实现,通过传入不同的参数,来实现不同的效果 
  • 属性选择器(根据指定的属性名称找到指定的标签)
    • 有属性名为attribute的标签([attribute])
    • 属性attribute的值为value的标签([attribute=value])
    • 属性attribute的取值是以什么开头的([attribute^=value])
    • 属性attribute的取值是以value结尾的([attribute$=value])
    • 属性attribute的取值是否包含value的([attribute*=value])
// 含有alt属性的img标签
img[alt]{}

// 属性class的值为value的p标签
p[class=value]{}

// 属性值alt的值中以vlaue开头的img标签
img[alt^=value]{}

// 属性值alt的值以value结尾的img标签
img[alt$=value]{}

// 属性值alt的值中包含vlaue的img标签
img[alt*=value]{}
  • 通配符选择器
*{}

选择器区别

id选择器与class选择器的区别

  • id选择器以#开头
  • class选择器以.开头
  • 在企业开发中,id一般情况下是给js使用的,所以除非特殊情况,否则不要使用id去设置

CSS三大特性

继承性

作用:给父元素设置一些属性,子元素也可以使用。这个就称为继承性

注意点

  1. 并不是所有的属性都可以继承(只有color/font/text/line开头的属性才可以继承)
  2. 在CSS的继承中不仅仅是儿子可以继承,只要是后代都可以继承
  3. 继承性中的特殊性
    1. a标签的文字颜色和下划线是不能继承的
    2. h标签的文字大小是不能继承的

层叠性

作用:层叠性就是CSS处理冲突的一种能力

注意点

层叠性只有在多个选择器中选中“同一个标签”,然后又设置了“相同的属性”,才会发生层叠性

优先级

  • 什么是优先级?

当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定

  • 优先级判断的三种方式
  1. 间接选中就是指继承

如果是间接选中,那么就是谁离目标标签比较近就听谁的

  1. 相同选择器(直接选中)

如果都是直接选中,并且都是同类型的选择器,那么就是谁写在后面就听谁的(后面的会把前面的覆盖)

  1. 不同选择器(直接选中)

如果都是直接选中,并且不是相同类型的选择器,就会按照选择器的优先级来层叠

优先级排序(由高——>低)

id>类>标签>通配符>继承>浏览器默认

!important

  • 什么是important

作用:用于提升某个直接选中标签的选择器中的某个属性的优先级。可以将被指定的属性的优先级提升为最高

注意点

  1. important只能用于直接选中,不能用于间接选中
  2. 通配符选择器选中的标签也是直接选中的
  3. !important只能提升被指定的属性的优先级,其他属性的优先级不会被提升
  4. !important必须写在属性值的分号前面
  5. !important前面的感叹号不能省略

权重问题

  • 什么是优先级的权重?

作用:当多个选择器混合在一起使用时,我们可以通过计算权重来判断谁的优先级最高

  • 权重的计算规则
  1. 首先计算选择器中有多少个id,id多的选择器优先级最高
  2. 如果id的个数一样,那么再看看类名的个数,类名个数多个优先级最高
  3. 如果类名的个数一样,那么再看标签名称的个数,标签名称个数多的优先级最高
  4. 如果id个数一样,类名个数也一样,标签名称个数也一样,那么就不会继续往下计算了,此时谁写在后面就听谁的(优先级相同时,后面的会把前面的覆盖)

注意点

  • 只有选择器是直接选中标签的时候才需要计算权重

你可能感兴趣的:(CSS选择器及三大特性)