一文搞懂 结构伪类 :nth-child && :nth-of-typ

结构伪类

从使用结构伪类的选择器开始 往上一层父辈开始筛选

从使用结构伪类的选择器开始 往上一层父辈开始筛选

从使用结构伪类的选择器开始 往上一层父辈开始筛选
不是从左往右选择 不是先父辈后筛选子类
从使用结构伪类的选择器开始 往上一层父辈开始筛选

依次选中第1个 第2个 第3个 div

1.前两组 表明 从使用结构伪类的选择器开始 往上一层父辈开始筛选 非先父辈后筛选子类
.f_row1 div:nth-child(1) { background-color: pink; } 错误原因: 先辈筛选子类 ; 整体选择器 选中的是 一整组div; .f_row1 div:nth-child(2) 在dom中不存在这样的结构
.f_row2 li:nth-child(1) div { background-color: #005971; } 正确原因: li在第一层父辈div存在5组 然后计数 依次选中

整体选中第1个P标签 第2个P标签

2.后两组 表明 nth-child是任何儿子辈分都计数1 :nth-of-typ是 结构伪类选择器前的 选择器选中的那种 计数1 【注意 一定是整体可以被匹配到才计数】
.f_row3 p:nth-child(1) { background-color: pink; } 错误原因: 根本不在这样的dom结构
.f_row4 p:nth-of-type(1) { background-color: #005971; } 正确原因: 1. 使用了 正确的结构伪类:nth-of-type 2. 整体能被匹配
点击查看代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div[class^="f_row"] li {
      float: left;
      margin: 10px;
    }
    div[class^="f_row"] {
      overflow: hidden;
      margin: 20px auto;
    }
    ul,
    li {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .c {
      width: 800px;
      margin: 20px auto;
    }

  /* -----------------依次选中第1个 第2个 第3个div--------------------------- */
    /* 错误 .f_row1 div:nth-child(1) 有效 和 .f_row1 div:nth-child(2) 未匹配任何 */
    .f_row1 div:nth-child(1) {
      background-color: pink;
    }

    .f_row1 div:nth-child(2) {
      background-color: pink;
    }

    /* 正确 */
    .f_row2 li:nth-child(1) div {
      background-color: #005971;
    }

    .f_row2 li:nth-child(2) div{
      background-color: #005971;
    }

    .f_row2 li:nth-child(3) div{
      background-color: #005971;
    }


 /* -----------------依次选中第1个 第2个 p--------------------------- */
    /* 错误 nth-child(1)没有选中 nth-child(2)选中1 */
    .f_row3 p:nth-child(1) {
      background-color: pink;
    }
    .f_row3 p:nth-child(2) {
      background-color: pink;
    }
    

    /* 正确 */
    .f_row4 p:nth-of-type(1) {
      background-color: #005971;
    }

    .f_row4 p:nth-of-type(2) {
      background-color: #005971;
    }
  </style>
</head>

<body>
  <div class="c">
    <div class="f_row1">
      <ul>
        <li>
          <div>1</div>
          <p>正品保障</p>
          <p>正品保障,提供发票</p>
        </li>
        <li>
          <div>2</div>
          <p>极速物流</p>
          <p>急速物流,急速送达</p>
        </li>
        <li>
          <div>3</div>
          <p>无优售后</p>
          <p>7天无理由退换货</p>
        </li>
        <li>
          <div>3</div>
          <p>特色服务</p>
          <p>私人定制家电套餐</p>
        </li>
        <li>
          <div>4</div>
          <p>帮助中心</p>
          <p>您的购物指南</p>
        </li>
      </ul>
    </div>
    <div class="f_row2 clearfix">
      <ul>
        <li>
          <div>1</div>
          <p>正品保障</p>
          <p>正品保障,提供发票</p>
        </li>
        <li>
          <div>2</div>
          <p>极速物流</p>
          <p>急速物流,急速送达</p>
        </li>
        <li>
          <div>3</div>
          <p>无优售后</p>
          <p>7天无理由退换货</p>
        </li>
        <li>
          <div>4</div>
          <p>特色服务</p>
          <p>私人定制家电套餐</p>
        </li>
        <li>
          <div>5</div>
          <p>帮助中心</p>
          <p>您的购物指南</p>
        </li>
      </ul>
    </div>
    <div class="f_row3 clearfix">
      <ul>
        <li>
          <div>1</div>
          <p>正品保障</p>
          <p>正品保障,提供发票</p>
        </li>
        <li>
          <div>2</div>
          <p>极速物流</p>
          <p>急速物流,急速送达</p>
        </li>
        <li>
          <div>3</div>
          <p>无优售后</p>
          <p>7天无理由退换货</p>
        </li>
        <li>
          <div>4</div>
          <p>特色服务</p>
          <p>私人定制家电套餐</p>
        </li>
        <li>
          <div>5</div>
          <p>帮助中心</p>
          <p>您的购物指南</p>
        </li>
      </ul>
    </div>
    <div class="f_row4 clearfix">
      <ul>
        <li>
          <div>1</div>
          <p>正品保障</p>
          <p>正品保障,提供发票</p>
        </li>
        <li>
          <div>2</div>
          <p>极速物流</p>
          <p>急速物流,急速送达</p>
        </li>
        <li>
          <div>3</div>
          <p>无优售后</p>
          <p>7天无理由退换货</p>
        </li>
        <li>
          <div>4</div>
          <p>特色服务</p>
          <p>私人定制家电套餐</p>
        </li>
        <li>
          <div>5</div>
          <p>帮助中心</p>
          <p>您的购物指南</p>
        </li>
      </ul>
    </div>
  </div>

</body>

</html>
相关推荐
lilu88888881 小时前
AI代码生成器赋能房地产:ScriptEcho如何革新VR/AR房产浏览体验
前端·人工智能·ar·vr
LCG元1 小时前
Vue.js组件开发-实现对视频预览
前端·vue.js·音视频
阿芯爱编程1 小时前
vue3 react区别
前端·react.js·前端框架
烛.照1031 小时前
Nginx部署的前端项目刷新404问题
运维·前端·nginx
YoloMari1 小时前
组件中的emit
前端·javascript·vue.js·微信小程序·uni-app
浪浪山小白兔2 小时前
HTML5 Web Worker 的使用与实践
前端·html·html5
疯狂小料2 小时前
React 路由导航与传参详解
前端·react.js·前端框架
追光少年33223 小时前
Learning Vue 读书笔记 Chapter 2
前端·javascript·vue.js·vue3
前端熊猫3 小时前
JavaScript 的 Promise 对象和 Promise.all 方法的使用
开发语言·前端·javascript
iOS阿玮4 小时前
速领🧧!iOS研究院专属「红包封面」来了,第二弹。
前端