第22题:关于css3 伪类选择器

前面的话

最近刷题,关于css3伪类选择器知识点有些模糊,这里总结一下。

题目

对于以下 HTML,下列选项中哪一个 CSS 选择器效果与其他的不同:

   html
    <p>
    <span>A</span>
    <span>B</span>
    <span>C</span>
    </p>
 

A: span:first-child
B: span:nth-child(0)
C: span:nth-child(-n+1)
D: span:nth-last-child(3)

解析

举个例子说明:

 <div>
        <h1>标题</h1>
        <p>哈哈</p>
        <p>哈哈</p>
        <p>哈哈</p>
        <p>哈哈</p>
        <span>文本</span>
  </div>
  • item:first-child

    表示选择的元素是item(id,class或标签),并且它是其父元素中的第1个元素

      h1:first-child {
        color: red;
    }
    

    上面的代码,表示选择的元素是h1,并且是其父元素中的第一个元素
    在这里插入图片描述

  • item:last-child

    表示选择的元素是item(id,class或标签),并且它是其父元素中的最后一个元素

    span:last-child {
    	color:red;
    }
    

    在这里插入图片描述

  • item:nth-child(n)

    表示选择的元素是item,并且它是其父元素的第n个元素, n必须大于0,不要求元素类型

     p:nth-child(2) {
            color: green;
        }
    

    上面的代码中,表示选择的元素是p,并且它是其父元素的第2个元素;如果是p:nth-child(1),则不能选择上,因为其不是父元素的第一个元素。
    在这里插入图片描述

  • nth-child()中还支持表达式,例如:nth-child(2n + 1)、nth-child(-n + 1)等
    p:nth-child(2n + 2) {
    	color: red;
    	}
    

    在这里插入图片描述

  • item:nth-last-child(n):与item:nth-child(n)一样,只是前者是从最后一个元素数起
       p:nth-last-child(2) {
       	 color: red;
       	 }  
    

    上面的代码,表示选择的元素是p,并且它是其父元素倒数第2个元素

    在这里插入图片描述

  • item:first-of-type

    表示选择的元素是item,并且它是父元素中特定类型item中的第一个元素

     p:first-of-type {
        	color: red;
     }
    

    上面代码表示,div中第一个p元素的颜色为red
    在这里插入图片描述

  • item:last-of-type: 与item:first-of-type相似,只不过是倒过来计数
  • item:nth-of-type(n)

    表示选择的元素是item,并且它是其父元素中特定类型item中的第n个

    p:nth-of-type(3) {
    	color: red;
    }
    

    上面的代码表示,div中的第3个p元素的颜色为red
    在这里插入图片描述

  • item:nth-last-of-type(n):与item:nth-of-type(n)类似,只不过是倒过来计数
  • item:only-child

    表示选择的元素是item,并且其父元素只有这一个元素,否则不能被选中

  • item:empty

    表示选择的元素是item,并且其内容为空,才会被选中

回到本题

题中span:first-child、 span:nth-child(-n+1)、span:nth-last-child(3)都选择的是第一个span元素,而B选项中,nth-child(n)n不能为0,在css中起始的都是1,只有在js中才是0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值