子类选择器nth-child作用逻辑

发布时间 2023-04-06 11:13:49作者: Zyatoer

初次接触:nth-child时感觉不是很清楚,网络上的描述主要的内容为:

  • :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。
  • n 可以是数字、关键词或公式。

但只看文字描述其实还是很难知道其中的作用逻辑,所以还是通过代码来进行演示更加简单。

<body>
  <ol>
    <p>
      <span>1</span>
    </p>
    <li>2</li>
    <p>3</p>
    <li>4</li>
    <p>5</p>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
  </ol>
</body>
li{
    去掉li的默认样式
      list-style:none;
    }

    li:nth-child(2n-1){
      color: aqua;
    }

    li:nth-child(2n){
      color: red;
    }

实际表现:

image-20230406105936841

现在来慢慢分析其中的过程:

  1. 第一步浏览器会根据样式找到li标签的父元素也就是ol标签

image-20230406110047467

  1. 第二步,浏览器会将ol标签下的所有标签统统拉进
  2. 第三步,看是否符合对应的表达式,比如2n-1就是选择下面对应的所有奇数标签也就是1,3,5,7,9对应的标签
  3. 第四部,选择出来的1,3,5,7,9中1对应的是span标签也就是p标签的儿子,3,5都对应的是p标签所以不给予对应的样式,而7,9对应的为li标签符合条件所以7,9的字体颜色变成了青色