【CSS】伪类:nth-child()和:nth-of-type()的区别

255 阅读1分钟

:nth-child:nth-of-typeCSS3中新增的伪类选择器,它俩如何使用呢?下面举例子说明。

:nth-child

p:nth-child(n):表示p所在父元素的所有子元素中,第n个必须为p,这里的n是从第一个子元素开始计数,第一个子元素为1,第二个子元素为2,...;

<style>
  p:nth-child(1) {
    color: red;
  }
</style>
<div class="pp">
  <!-- 这段文字为红色 -->
  <p>文字文字文字文字文字</p>
  <p>文字文字文字文字文字</p>
  <p>文字文字文字文字文字</p>
</div>

<div class="pp">
  <!-- p::nth-child(1)无效,因为.pp下面的第1个元素不为p -->
  <div>文字文字文字文字文字</div>
  <p>文字文字文字文字文字</p>
  <p>文字文字文字文字文字</p>
</div>

效果图:

image.png

:nth-of-type

p:nth-of-type(n):表示p所在父元素的所有为p的子元素中,第n个p,这里的n是从第一个p元素开始计数,第一个p为1,第二个p为2,...;

<style>
  p:nth-of-type(1) {
    color: red;
  }
  p:nth-of-type(3) {
    color: red;
  }
</style>
<div class="pp">
  <div>文字文字文字文字文字</div>
  <!-- .pp的第一个p,这段文字为红色 -->
  <p>文字文字文字文字文字</p>
  <span>文字文字文字文字文字</span>
  <p>文字文字文字文字文字</p>
  <span>文字文字文字文字文字</span>
  <!-- .pp的第三个p,这段文字为红色 -->
  <p>文字文字文字文字文字</p>
</div>

效果图:

image.png

对于p:first-child和p:first-of-type,就是p:first-child(1)和p:first-of-type(1)的简写

参考

  1. :nth-child - CSS(层叠样式表) | MDN

  2. :nth-of-type - CSS(层叠样式表) | MDN