当前位置: 首页 > news >正文

CSS :nth-child

CSS :nth-child

:nth-child 伪类根据元素在同级元素中的位置来匹配元素.

  • CSS :nth-child
    • 语法
      • 值是关键词 odd/even
      • An+B
      • 最新的 [of S] 语法
      • 权重
    • 浏览器兼容性

很简单的例子, 来直觉上理解这个伪类的意思

<ul><li class="me">Apple</li><li>Banana</li><li class="me">Peach</li>
</ul>
<ul><li>Apple</li><li class="me">Banana</li><li class="me">Peach</li>
</ul>
.me:nth-child(1) { background-color: salmon; }  

在这里插入图片描述

你也许会奇怪🤔, 为什么下边一组的 Banana 背景不是红色呢? 因为 .me:nth-child(1) 表示选中同级元素中的第一个元素并且该元素 class 包含 me✅, 注意不是选中第一个 class 包含 me 的元素. 所以, 如果同级元素中的第一个元素的 class 不包含 me, 也不会选中.

语法

:nth-child() 语法中, 统计的元素包含同级的任何类型元素.

:nth-child() 的完整语法如下, ? 前面的 [] 中内容表示可选, 稍后会介绍这种最新的部分. :nth-child() 只接受一个参数, 该参数描述匹配同级元素的模式, 元素索引从 1 开始, 注意不是 0.

:nth-child(<nth> [of S]?) { ... }

值是关键词 odd/even

  • odd: 表示在同级元素中奇数位置的元素: 1、3、5…
  • even: 表示在同级元素中偶数位置的元素: 2、4、6…

比如, 在一个表格中我们希望相邻行的背景颜色不同, 这样方便阅读, 就可以这样写

tr:nth-child(even) { background-color: azure; }
<table border="1"><thead><tr><th>NAME</th><th>AGE</th> <th>COUNTRY</th></tr></thead><tbody><tr><td>Levi</td> <td>18</td> <td>China</td></tr><tr><td>June</td> <td>23</td> <td>USA</td>   </tr><tr><td>JiaXin</td> <td>20</td> <td>China</td></tr><tr><td>Mike</td> <td>22</td> <td>UK</td></tr></tbody>
</table>

在这里插入图片描述

An+B

不论是 odd 还是 even, 他们都是更普遍表达的特殊情况的简便写法. 使用 An+B 这种记号你可以自由定制你的匹配规则

  • A: 整数步长
  • n: 非负整数, 从 0 开始
  • B: 整数偏移量

为什么我们说 odd/evenAn+B 特殊取值时的简便写法呢? 因为

  • odd -> :nth-child(2n+1)
  • even -> :nth-child(2n)

下面我们就看看 An+B 取不同值的特定用法吧

  • :nth-child(2): 表示第二个元素
    在这里插入图片描述
.two:nth-child(2) { background-color: salmon; }
<ul class="flex-1"><li class="two">1</li><li class="two">2</li><li class="two">3</li>
</ul>
<ul class="flex-1"><li class="two">1</li><li class="two" hidden>2</li> <!-- !!! --><li class="two">3</li>
</ul>

从上图中可以看到, 左边的符合我们的预期, 第二个元素并且 classtwo 的元素背景红了, 但是左边的好像不太行, 因为 displaynone 的元素也被考虑进来了!!!

  • :nth-child(3n): 表示第3、6、9…个元素.
    在这里插入图片描述

  • :nth-child(n+5): 表示第5、6、7、8、9…个元素. 也就是第五个和后面的元素.
    在这里插入图片描述

  • :nth-child(-n+3): 表示第1(-2+3)、2(-1+3)、3(-0+3)个元素. 如果 n 的值继续增加, 就会选中第0、-1、-2…个元素, 负数位置的元素不存在并且元素是从 1 开始索引的.
    在这里插入图片描述

  • :nth-child(4n+1): 表示第1、5、9…个元素
    在这里插入图片描述

  • :nth-child(n): 表示每一个元素

  • :nth-child(1): 表示第 1 个元素, 是 n 为 1 更特殊的情况
    在这里插入图片描述

.n:nth-child(n) {background-color: salmon;
}
.n:nth-child(1) {border-width: 3px;
}
  • :nth-child(n+3):nth-child(-n+5): 表示第3、4、5个元素. 用于选择一个具有上下限范围内的元素
    在这里插入图片描述

最新的 [of S] 语法

目前 :nth-child() 只能选择特定位置的元素, 比如 .name:nth-child(-n+3) 只能选择元素中 class 包含 name 的并且是所有元素中的前三个元素. 但是, 如果我们想要选择前三个 class 包含 name 的元素呢? 那就是最新的 of S 语法

下面的例子

.class1 > .item:nth-child(-n+3 of .name) {background-color: salmon;
}
<ul class="class1"><li class="name item">1</li><li class="item">2</li><li class="item">3</li><li class="item">4</li><li class="item">5</li><li class="name item">6</li><li class="item">7</li><li class="item">8</li><li class="name item">9</li><li class="name item">10</li>
</ul>

在这里插入图片描述

📖一定要留意两者的不同哦.

你可能问新的语法有什么用呢, 当然有用啦, 比如我们在给表格添加间隔背景时, 如果出现一行元素被隐藏的情况, 会出现什么效果呢?

tr:nth-child(even) {background-color: azure;
}
<tbody><tr></tr><tr hidden></tr><tr></tr><tr></tr>
</tbody>

在这里插入图片描述

哇! 被隐藏的那一行也被考虑进入了, 按理说应该只有第二行(JiaXin)才有阴影的, 怎么办呢? 使用 of S. 我们不是要选择偶数行, 而是要选择所有 hiddenfalse 的偶数行.

tr:nth-child(even of :not([hidden])) {background-color: azure;
}

在这里插入图片描述

权重

:nth-child() 的权重是单个伪类的权重. 如果使用 of S 语法, 那么就是单个伪类的权重加上 S 中权重最高的权重值.

<div><div id="country1" class="country1">CHINA</div>
</div>
.country1:nth-child(1) {color: blue; /** WIN  */
}
.country1 {color: red;
}

在这里插入图片描述

如果我们再加一个呢?

:nth-child(1 of #country1.country1) {color: green; /** WIN */
}

在这里插入图片描述

浏览器兼容性

根据 MDN, of S 的新语法需要比较新的浏览器支持
在这里插入图片描述

谢谢你看到这里😊

相关文章:

CSS :nth-child

CSS :nth-child :nth-child 伪类根据元素在同级元素中的位置来匹配元素. CSS :nth-child 语法 值是关键词 odd/evenAnB最新的 [of S] 语法权重 浏览器兼容性 很简单的例子, 来直觉上理解这个伪类的意思 <ul><li class"me">Apple</li><li>B…...

国内好用的企业级在线文档有哪些?

在当今数字化时代&#xff0c;企业级在线文档已经成为了现代办公环境中不可或缺的一部分。它不仅能够提高工作效率&#xff0c;还能够实现多人协同编辑&#xff0c;满足团队协作的需求。那么&#xff0c;在国内市场上&#xff0c;哪些企业级在线文档产品备受企业青睐呢&#xf…...

P1217 [USACO1.5] 回文质数 Prime Palindromes

题目描述 因为 151 151 151 既是一个质数又是一个回文数&#xff08;从左到右和从右到左是看一样的&#xff09;&#xff0c;所以 151 151 151 是回文质数。 写一个程序来找出范围 [ a , b ] ( 5 ≤ a < b ≤ 100 , 000 , 000 ) [a,b] (5 \le a < b \le 100,000,000…...

【STM32MP1系列】DDR内存测试用例

DDRDDR内存测试 一、uboot下测试DDR内存二、Linux内核下测试DDR内存1、使用memtester测试DDR内存2、使用stressapptest测试DDR内存三、Buildroot中构建memtester软件包四、搭建stressapptest软件包五、注意事项一、uboot下测试DDR内存 输入bdinfo查看DDR起始地址以及大小: b…...

【CAS6.6源码解析】调试Rest API接口

CAS的web层默认是基于webflow实现的&#xff0c;ui和后端是耦合在一起的&#xff0c;做前后端分离调用和调试的时候不太方便。但是好在CAS已经添加了支持Rest API的support模块&#xff0c;添加相应模块即可。 文章目录 添加依赖并重新build效果 添加依赖并重新build 具体添加…...

C++设计模式之模板方法、策略模式、观察者模式

面向对象设计模式是”好的面向对象设计“&#xff0c;所谓”好的面向对象设计“指的是可以满足”应对变化&#xff0c;提高复用“的设计。 现代软件设计的特征是”需求的频繁变化“。设计模式的要点是”寻求变化点&#xff0c;然后在变化点处应用设计模式&#xff0c;从而更好地…...

【计算机网络 02】物理层基本概念 传输媒体 传输方式 编码与调制 信道极限容量 章节小结

第二章 -- 物理层 2.1 物理层基本概念2.2 物理层下的传输媒体2.3 传输方式2.4 编码与调制2.5 信道极限容量2.6 章节小结 2.1 物理层基本概念 2.2 物理层下的传输媒体 传输媒体也称为传输介质或传输媒介&#xff0c;他就是数据传输系统中在发送器和接收器之间的物理通路 传输媒…...

无涯教程-jQuery - serialize( )方法函数

serialize()方法将一组输入元素序列化为数据字符串。 serialize( ) - 语法 $.serialize( ) serialize( ) - 示例 假设无涯教程在serialize.php文件中具有以下PHP内容- <?php if( $_REQUEST["name"] ) {$name$_REQUEST[name];echo "Welcome ". $na…...

一套不错的基于uniapp实现的投票类小程序/H5

最近作者心血来潮&#xff0c;想做一个热点话题投票&#xff0c;话题相关的资讯跟踪类的小程序&#xff0c;方便自己发布一些大家比较关心的话题。 基于以上需求&#xff0c;说干就干&#xff0c;首先需要定义一个需求&#xff1a; 1、支持热门话题投票、排行榜&#xff08;日…...

Mac代码编辑器sublime text 4中文注册版下载

Sublime Text 4 for Mac简单实用功能强大&#xff0c;是程序员敲代码必备的代码编辑器&#xff0c;sublime text 4中文注册版支持多种编程语言&#xff0c;包括C、Java、Python、Ruby等&#xff0c;可以帮助程序员快速编写代码。Sublime Text的界面简洁、美观&#xff0c;支持多…...

django------模糊查询

1.常用模糊查询的方法 queryset中支持链式操作 bookBook.objects.all().order_by(-nid).first() 只要返回的是queryset对象就可以调用其他的方法,直到返回的是对象本身 大于、大于等于、小于、小于等于&#xff1a; # __gt 大于> # __gte 大于等于> # __lt 小于< …...

AVFoundation - 音视频组合编辑

文章目录 一、简要说明二、使用1、音频和视频合成2、视频的拼接一、简要说明 相关类 AVMutableCompositionAVMutableCompositionTrack二、使用 1、音频和视频合成 - (void)testCom1{AVMutableComposition *mutableComposition = [AVMutableComposition composition];AVMu...

jpa生成实体类,jpa根据数据库表生成实体类

jpa生成实体类&#xff0c;jpa根据数据库表生成实体类jpa根据数据库表结构生成实体idea下SpringbootJPA从数据库自动生成实体类JPA用数据库表直接生成实体类Spring boot整合jpa(一),根据表生成实体IDEA下SpringData-JPA根据数据库表生成实体类idea怎么根据数据库表自动生成JPA实…...

嵌入式Linux系统组成

嵌入式Linux系统的组成 文章目录 嵌入式Linux系统的组成一、发行版Linux系统VS嵌入式Linux系统二、嵌入式Linux系统架构一、发行版Linux系统VS嵌入式Linux系统 1.产品 发行版Linux系统产品:服务器、消费平板、消费手提电脑 嵌入式Linux系统产品:扫地机器人,小米机顶盒特定场…...

【iOS】—— RunLoop和多线程相关问题总结

RunLoop 1. 讲讲RunLoop&#xff0c;项目中有用到过吗&#xff1f; RunLoop 的基本作用&#xff1a;保持程序的持续运行&#xff0c;节省 CPU 的资源&#xff0c;提高程序的性能 &#xff08; 没有事情&#xff0c;就请休眠&#xff0c;不要功耗。有事情&#xff0c;就处理&a…...

在CSDN学Golang云原生(gitlab)

一&#xff0c;基于Docker安装gitlab runner 在Golang中&#xff0c;基于Docker安装GitLab Runner需要以下步骤&#xff1a; 首先&#xff0c;您需要安装Docker和Docker Compose。这可以通过访问官方网站来完成。接下来&#xff0c;您需要创建一个名为docker-compose.yml的文…...

cv2抛出异常 “install libgtk2.0-dev and pkg-config, then re-run cmake or configure”

背景&#xff1a; linux中使用cv2显示图片的时候&#xff0c;运行提示异常&#xff1a; 处理方式&#xff1a; 网友的推荐操作&#xff1a; 切换至root模式安装 apt-get install libgtk2.0-dev进入OpenCV下载目录&#xff0c;重新编译 cd /home/XXX/opencv mkdir release …...

C#..上位机软件的未来是什么?

C#是一种流行的编程语言&#xff0c;广泛应用于桌面应用程序和上位机软件开发。未来&#xff0c;C#上位机软件将继续不断发展和创新&#xff0c;以满足用户日益增长的需求。以下是我认为C#上位机软件未来可能会涉及的一些方向&#xff1a; 更加智能化&#xff1a;随着人工智能…...

CentOS 搭建 GitLab Git

本文目录 1. CentOS7 搭建 Gitlab1. 安装 sshd1. 安装 sshd 依赖2. 启动并设置开机自启3. 安装防火墙4. 开启防火墙5. 开放 ssh 以及 http 服务 2. 安装 postfix1. 安装 postfix2. 启动并设置开机自启3. 几个补充知识 3. 下载并安装 gitlab1. 在线下载安装包2. 安装 4. 修改 gi…...

【MTK平台】【wpa_supplicant】关于wpa_supplicant_8/src/p2p/p2p_go_neg.c文件的介绍

本文主要介绍external/wpa_supplicant_8/src/p2p/p2p_go_neg.c文件 这里主要介绍2个方法 1. p2p_connect_send接受来自 p2p.c 文件中调用p2p_connect方法发送的GON Request帧 2. p2p_process_go_neg_resp处理来自GON Response帧的处理流程 先看下p2p_connect_send方法 int p…...

饭局下半场,别人忙着解酒,我从开局就赢在酒杯里

1. 饭局如战场&#xff0c;后半场才是真正的考验任何一场饭局&#xff0c;都可以被分成两个阶段。前半场&#xff0c;推杯换盏&#xff0c;人人意气风发。酒过三巡&#xff0c;大家还在比拼谁喝得多、谁喝得猛&#xff0c;气氛热烈而体面。但到了后半场&#xff0c;画风开始分裂…...

告别‘塑料感’渲染:IBGS如何用‘颜色残差’让3D高斯重建的物体更真实?

告别‘塑料感’渲染&#xff1a;IBGS如何用‘颜色残差’让3D高斯重建的物体更真实&#xff1f; 当你在虚拟场景中看到一个金属茶壶时&#xff0c;是否总觉得它像玩具一样缺乏真实感&#xff1f;这就是当前3D高斯溅射&#xff08;3DGS&#xff09;技术面临的"塑料感"困…...

**元宇宙经济中的智能合约开发实战:用Solidity构建去中心化资产交易系统**在元宇宙经济蓬勃发展的今

元宇宙经济中的智能合约开发实战&#xff1a;用Solidity构建去中心化资产交易系统 在元宇宙经济蓬勃发展的今天&#xff0c;数字资产的流通与确权成为核心议题。无论是虚拟土地、NFT艺术品还是游戏道具&#xff0c;背后都离不开区块链技术的支持。而智能合约正是连接现实世界资…...

为什么92%的团队在MCP项目中期被迫重构?Python 4大模板的抽象泄漏、协议耦合与测试盲区深度拆解

第一章&#xff1a;MCP服务器开发模板的行业现状与重构困局当前&#xff0c;MCP&#xff08;Model Control Protocol&#xff09;服务器作为AI智能体协同调度与协议网关的核心组件&#xff0c;在金融风控、工业边缘控制、多模态Agent编排等场景中加速落地。然而&#xff0c;主流…...

S32K312实战:用AUTOSAR Icu模块测量PWM占空比与周期(基于NXP MCAL与EB Tresos)

S32K312实战&#xff1a;AUTOSAR Icu模块精准测量PWM信号的工程实践 在汽车电子开发中&#xff0c;PWM信号的精确测量是ECU功能实现的基础环节。无论是发动机控制单元中的转速信号采集&#xff0c;还是车身电子中的执行器状态反馈&#xff0c;都需要对PWM信号的周期、占空比等参…...

springboot+vue基于web的校园电动车短租系统的设计系统

目录同行可拿货,招校园代理 ,本人源头供货商系统功能分析用户管理模块车辆管理模块租赁业务模块安全与风控模块统计与报表模块技术实现要点项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商…...

基于STM32F103主控与BMP085气压计、HMC5883L磁力计的九轴DMP解算与卡尔曼...

九轴解算航向角、俯仰角、滚转角输出f103主控&#xff0c;气压计bmp085&#xff0c;磁力计hmc5883l&#xff0c;dmp解算&#xff0c;卡尔曼滤波矩阵运算&#xff0c;多份代码前阵子蹲在宿舍焊飞控的时候&#xff0c;突然发现之前抄的九轴解算代码总飘&#xff0c;哪怕把飞控放在…...

Karp的21个NPC问题:从理论到实践的经典探索

1. Karp与NPC问题的历史背景 1971年&#xff0c;Stephen Cook在论文《The Complexity of Theorem Proving Procedures》中首次提出了NP完全性的概念&#xff0c;并证明了布尔可满足性问题&#xff08;SAT&#xff09;属于NP完全问题。这一突破性工作为计算复杂性理论奠定了基石…...

别再买错千元投影! 哈趣Q1Pro藏看越级体验

当下的智能投影市场正经历着深度的“去伪存真”变革&#xff0c;行业洗牌加速的同时&#xff0c;也让消费者的选购变得愈发谨慎。洛图科技数据显示&#xff0c;2025年国内智能投影市场整体销量下滑&#xff0c;其中低端投影成为调整重灾区&#xff0c;0-499元价位段销量同比大跌…...

忍者像素绘卷GPU优化部署教程:双显卡加速与显存平衡详解

忍者像素绘卷GPU优化部署教程&#xff1a;双显卡加速与显存平衡详解 1. 认识忍者像素绘卷 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;专为像素艺术创作而设计。它将16-Bit复古游戏美学与现代AI技术完美结合&#xff0c;为创作者提供了一个独特…...