CSS-伪类选择器(未完待续。。。)

子节点选择器

:nth-of-type() && :nth-child()

  • :nth-of-type(n) 匹配父节点下同一级对应标签的第n个节点 (:nth-last-of-type(n)反序)
  • :nth-child(n) 匹配父节点下同一级第n个子节点且子节点为对应标签(:nth-last-child(n)反序)
  • 值得注意的是::nth-如添加了类名限制,查找时子节点的顺序n不受类名限制影响,但查找到的结果受类名限制。
:nth-of-type() && :nth-child()区别
<div>
  <p>第1-1个p元素</p>
  <section>
    <p>第2-1个p元素</p>
    <section>第2-1个section元素</section>
    <p>第2-2个p元素</p>
    <p>第2-3个p元素</p>
  </section>
  <section>第1-2个section元素</section>
  <section>第1-3个section元素</section>
  <section>第1-4个section元素</section>
  <p>第1-2个p元素</p>
  <p>第1-3个p元素</p>
</div>
section > p, section > section {
  padding-left: 30px;
}
p:nth-of-type(2){
   color: red;
}
p:nth-child(2){
  background: red;
}
p.info:nth-of-type(2){
    
}

结果:p:nth-child(2) 无效

clipboard.png

p:nth-of-type(2): 匹配父节点下的第二个是p的子节点
p:nth-child(2): 匹配父节点下第二个子节点同时第二个子节点为p

注意点
<div>
    <p>1</p>
    <div class="foo">
      <div class="foo">2-1</div>
      <div class="foo">2-2</div>
    </div>
    <p>3</p>
    <p class="foo">4</p>
    <p class="foo">5</p>
</div>
.foo:nth-of-type(2) {
  color: red;
}

效果:类名顺序失效, 匹配每一级同一个类型的第二个标签且类名为foo的。
满足:nth-of-type(2)结果的为<div class="foo">2-2</div>和<p>3</p>,但是<p>3</p>不匹配类名为foo,所以最后匹配结果为<div class="foo">2-2</div>

clipboard.png

<div>
  <p>1</p>
  <div class="foo">
    <div class="foo">2-1</div>
    <div class="foo">2-2</div>
    <div class="foo">2-3</div>
  </div>
  <p>3</p>
  <p class="foo">4</p>
  <p class="foo">5</p>
</div>
p.foo:nth-of-type(3) {
  color: red;
}

结果:类名顺序失效, 匹配每一级第三个p标签且p标签类名为foo的。

clipboard.png

div>p

匹配所有父级是<div>的<p>元素

兄弟节点选择器

div+p

匹配所有紧接着<div>元素之后的<p>元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值