目录
  1. 1. CSS常用选择器
    1. 1.1. 元素选择器
    2. 1.2. id选择器
    3. 1.3. 类选择器
    4. 1.4. 通配选择器
    5. 1.5. 交集选择器
    6. 1.6. 后代选择器
    7. 1.7. 子代选择器
    8. 1.8. 子元素选择器
      1. 1.8.1. :first-child
      2. 1.8.2. :last-child
      3. 1.8.3. :nth-child(N)
      4. 1.8.4. :nth-child(even)
      5. 1.8.5. :nth-child(odd)
      6. 1.8.6. :first-of-type
      7. 1.8.7. :last-of-type
      8. 1.8.8. :nth-of-type()
    9. 1.9. 兄弟元素选择器
  2. 2. 选择器的优先级
常用选择器

CSS常用选择器

元素选择器

通过元素选择器可以选择页面中所有指定元素

语法:标签名{ }

p{
color:red;
}

id选择器

通过元素的id属性值选中唯一的一个元素

语法:#id属性值{ }

#home{
font-size:20px;
}

类选择器

通过元素的class属性值选中一组元素

语法:.class属性值{ }

.car{
color:blue;
}

通配选择器

可以选中页面中的所有元素

语法:*{ }

*{
margin:0;
}

交集选择器

可以选中同时满足多个选择器的元素

语法:选择器1选择器2……选择器n{}

span.p3{
background-color:yellow;
}

在此之前,先普及一下元素之间的关系

元素之间的关系:

  • 祖先元素 – 直接或间接包含后代元素的元素。
  • 后代元素 – 直接或间接被祖先元素包含的元素。
  • 父元素 – 直接包含子元素的元素。
  • 子元素 – 直接被父元素包含的元素。
  • 兄弟元素 – 拥有相同父元素的元素。

后代选择器

选中指定元素的指定后代元素

语法:祖先元素 后代元素{ }

div span{
color:green;
}
div span p{
font-size:50px;
}

子代选择器

IE6以下不支持子代选择器

选中指定父元素的指定子元素

语法:父元素 > 子元素{ }

div > span{
color:red;
}

子元素选择器

:first-child

选择第一个子元素

p:first-child{
background-color:red;
}

:last-child

选择最后一个子元素

p:last-child{
background-color:red;
}

:nth-child(N)

选择任意位置的子元素

/*表示选择p元素第三个元素*/
p:nth-child(3){
background-color:red;
}

:nth-child(even)

选择偶数位的子元素

p:nth-child(even){
background-color:red;
}

:nth-child(odd)

选择奇数位的子元素

p:nth-child(odd){
background-color:red;
}

:first-of-type

选择某类元素下的第一个子元素

p:first-child-type{
color:yellow;
}

:last-of-type

选择某类元素下的最后一个子元素

p:last-child-type{
color:yellow;
}

:nth-of-type()

选择某类元素下的任意子元素

/*选择所有p元素中的第二个P元素*/
p:nth-of-type(2){
color:yellow;
}
/*选择所有p元素中的双数位P元素*/
p:nth-of-type(even){
color:yellow;
}
/*选择所有p元素中的奇数位P元素*/
p:nth-of-type(odd){
color:yellow;
}

兄弟元素选择器

兄弟元素 + 兄弟元素{ }

查找后边一个兄弟元素

span + p{
color:green;
}

兄弟元素 ~ 兄弟元素{ }

查找后边所有的兄弟元素

span ~ p{
color:green;
}

选择器的优先级

当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时候样式之间产生了冲突,最终采用哪个选择器定义的样式,由选择器的优先级(权重)决定

优先级规则:

  • 内联样式,优先级 1000
  • id选择器,优先级 100
  • 类和伪类,优先级 10
  • 元素选择器,优先级 1
  • 通配 * ,优先级 0
  • 继承的样式,无优先级
/*内联样式*/
<span style="color:red;" class="s" id="s1"></span>
/*id选择器*/
#s1{
color:red;
}
/*类选择器*/
.s{
color:red;
}
/*元素选择器*/
span{
color:red;
}
/*通配选择器*/
*{
color:red;
}

当选择器中包含多种选择器时,需要将多种选择器的优先级相加然后再比较

注意:选择器优先级计算不会超过他的最大数量级

/*优先级 100*/
#s1{
color:red;
}
/*优先级 1 + 100*/
span#s1{
color:yellow;
}

如果选择器优先级一样,则采用靠后的样式

/*将采用后面这个p2的样式*/
.p1{
color:red;
}
.p2{
color:yellow;
}
/*将采用后面这个p1的样式*/
.p2{
color:yellow;
}
.p1{
color:red;
}

!important

可以样式最后加一个!important,则此时该样式将会获得一个最高的优先级,将会优先于所有的样式,甚至超过内联样式,但是在开发中尽量避免使用important

.p1{
color:red;!important;
}
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-02/03/%E5%AD%A6%E4%B9%A0/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/CSS/%E5%B8%B8%E7%94%A8%E9%80%89%E6%8B%A9%E5%99%A8/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论