如何用CSS的:nth-child(-n+3)伪类仅选择列表的前三个元素?

轻伟姑娘_8011

轻伟姑娘_8011

2026-08-31

194人浏览

原创

:nth-child(-n+3)能选前三个子元素,但因按所有子元素位置计数,混有其他标签时会误选;应优先用:nth-of-type(-n+3)只统计同类型元素。

如何用css的:nth-child(-n+3)伪类仅选择列表的前三个元素?

为什么 :nth-child(-n+3) 能选前三个,但常被误用?

它确实能选中前三个子元素,但关键在于:它匹配的是「在父容器中位置为第 1、2、3 的子元素」,而不是「列表中前三个

  • 元素」。如果父元素里混有其他类型标签(比如
    、

    ),:nth-child(-n+3) 会把它们一起算进去——导致真正想选的
  • 可能一个都选不中。

    :nth-child(-n+3) 和 :nth-of-type(-n+3) 的区别在哪?

    前者按 DOM 顺序数所有子元素,后者只数同类型(比如只数

  • )。实际写列表样式时,绝大多数情况该用后者:

    ul li:nth-of-type(-n+3) {
      color: red;
    }

    常见错误场景:

    • HTML 是
        header
      • A
      • B
      • C
      → :nth-child(-n+3) 会选中
      和前两个
    • ,不是你想要的
    • 用 :nth-child(-n+3) 给
        加序号样式,但中间插了
      1. → 序号错位
      2. 怎么验证当前选择器到底选中了谁?

        打开浏览器开发者工具,在 Elements 面板里右键目标元素 → 「Break on > attribute modifications」没用,直接用控制台跑这行:

        CSS婚礼策划服务机构宣传网站模板
        CSS婚礼策划服务机构宣传网站模板

        CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

        下载
        console.log([...document.querySelectorAll('ul li:nth-child(-n+3)')]);

        再对比:

        console.log([...document.querySelectorAll('ul li:nth-of-type(-n+3)')]);

        两者输出数组长度和内容不同,就说明存在类型干扰。另外注意::nth-child() 不接受元素类型前缀(不能写 li:nth-child(-n+3) 来限定,必须靠父选择器约束)。

        兼容性和性能要注意什么?

        :nth-child() 和 :nth-of-type() 在 IE9+ 都支持,不用垫片。性能上无明显差异,但若列表动态增删(比如 Vue/React 渲染),:nth-child() 更容易因插入非

      3. 节点而意外失效——这点常被忽略,尤其在组件封装时,父容器可能被外层逻辑注入额外节点。

    • 前端入门到VUE实战笔记:立即使用
      在学习笔记中,你将探索 前端 的入门与实战技巧!

      相关专题

      更多
      css
      css

      css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

      2023.06.15

      5196

      6

      css居中
      css居中

      css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

      2023.07.27

      1117

      5

      css如何插入图片
      css如何插入图片

      cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

      2023.07.28

      1998

      6

      css超出显示...
      css超出显示...

      在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

      2023.08.01

      3966

      7

      css字体颜色
      css字体颜色

      CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

      2023.08.10

      8205

      11

      什么是css
      什么是css

      CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

      2023.08.10

      6931

      7

      css三角形怎么写
      css三角形怎么写

      CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

      2023.08.21

      2297

      9

      css设置文字颜色
      css设置文字颜色

      CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

      2023.08.22

      3331

      5

      css禁止点击事件
      css禁止点击事件

      实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

      2023.08.23

      2933

      5

      热门下载

      更多
      网站特效
      /
      网站源码
      /
      网站素材
      /
      前端模板

      精品课程

      更多
      相关推荐
      /
      热门推荐
      /
      最新课程
      Sass 教程
      Sass 教程

      共14课时 | 1.5万人学习

      Bootstrap 5教程
      Bootstrap 5教程

      共46课时 | 6.1万人学习

      CSS教程
      CSS教程

      共754课时 | 99.2万人学习