一文搞懂 结构伪类 :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>
相关推荐
胡歌115 分钟前
dom有几种获取方式
前端·javascript·html
前端小王hs15 分钟前
Vue3+Node/Express支付宝沙箱支付与确认支付
前端·node.js·vue·express·前端小王hs
AC-PEACE27 分钟前
React 中 useState 的 基础使用
前端·javascript·react.js
咔咔库奇29 分钟前
React组件化深度解析(二):从受控组件到生命周期现代化
开发语言·前端·javascript
Au_ust29 分钟前
千峰React:Hooks(下)
前端·react.js·前端框架
大得3692 小时前
vue3配置端口,比底部vue调试
前端·javascript·vue.js
爱趣五科技2 小时前
H5DS编辑器教程——跳转页面
前端·编辑器
前端无冕之王6 小时前
HTML邮件的制作以及可能遇到的问题
前端·html
ssk5211256 小时前
HTML邮件的制作以及遇到的问题
前端·html
ChoSeitaku6 小时前
10.前端部分|首页index.html|题库all_questions.html|指定题目one_question.html(html)
前端·javascript·html