首页 > 其他分享 >举例说明伪类:nth-child、:first-child与:first-of-type这三者有什么不同?

举例说明伪类:nth-child、:first-child与:first-of-type这三者有什么不同?

时间:2024-11-25 09:38:37浏览次数:5  
标签:container 伪类 元素 nth child type first

让我们用一些例子来说明 :nth-child:first-child:first-of-type 之间的区别:

假设我们有以下 HTML 结构:

<div class="container">
  <p>Paragraph 1</p>
  <span>Span 1</span>
  <p>Paragraph 2</p>
  <span>Span 2</span>
  <div>Div 1</div>
</div>

1. :first-child

:first-child 匹配父元素的第一个子元素。

.container :first-child {
  color: red;
}

在这个例子中,只有 "Paragraph 1" 会变成红色。 :first-child 只关心元素是否是其父元素的第一个子元素,而不管它的类型。

2. :first-of-type

:first-of-type 匹配父元素中同类型元素的第一个。

.container p:first-of-type {
  color: blue;
}

.container span:first-of-type {
  color: green;
}

这里,"Paragraph 1" 会变成蓝色,"Span 1" 会变成绿色。 "Paragraph 2" 不会有任何变化,因为它不是第一个 p 元素。 :first-of-type 关心元素类型,并选择该类型中的第一个。

3. :nth-child(n)

:nth-child(n) 是一个更通用的选择器,它允许你选择父元素的第 n 个子元素。

.container :nth-child(2) {
  font-weight: bold;
}

.container :nth-child(even) {
  font-style: italic;
}

.container p:nth-child(2) { /* 注意这里 */
  text-decoration: underline;
}
  • 第一个规则会将 "Span 1" 的字体加粗,因为它是第二个子元素。
  • 第二个规则会将 "Span 1", "Span 2" 和 "Div 1" 的字体变为斜体,因为它们是偶数子元素 (第2, 4, 和6个)。
  • 第三个规则很重要,它展示了:nth-child:nth-of-type 的关键区别。 这个规则不会对任何元素生效。虽然 "Paragraph 2" 是第二个 p 元素,但它却是 .container 的第三个子元素。 :nth-child 只考虑元素在父元素中的位置,而不考虑元素的类型。 如果要选择第二个 p 元素,需要使用 :nth-of-type(2)

总结:

  • :first-child: 选择父元素的第一个子元素。
  • :first-of-type: 选择父元素中特定类型的第一个子元素。
  • :nth-child(n): 选择父元素的第 n 个子元素 (无论类型)。

希望这些例子能清晰地解释它们之间的区别。 理解这些区别对于编写高效且精准的 CSS 选择器至关重要。

标签:container,伪类,元素,nth,child,type,first
From: https://www.cnblogs.com/ai888/p/18566926

相关文章

  • CSS的伪类和伪对象有什么不同?
    CSS伪类和伪元素之间的主要区别在于它们选择的内容以及如何使用它们。伪类选择现有元素的特定状态,而伪元素创建新的抽象元素,这些元素不是文档树的一部分。更详细的区分:伪类(Pseudo-classes)选择什么:选择处于特定状态的现有元素。例如,链接的悬停状态、表单元素的焦点状态......
  • [AGC061C] First Come First Serve 题解
    Description有\(n\)个人来过,第\(i\)个人在\(a_i\)时刻来在\(b_i\)时刻走,每个人可以在来时或走时登记,问可能的登记顺序有多少种。\(n\leq5\times10^5\),\(a_i,b_i\)互不相同,\(\foralli<n,a_i<a_{i+1},b_{i}<b_{i+1}\)。Solution首先如果每个人随便选,有\(2^n\)种方......
  • css-functions伪类选择器系列二
    一张图浏览CSSFunctions概述本文主要讲述CSS的部分伪类选择器第二篇,包括::nth-child、:nth-last-child、:nth-of-type和:nth-last-of-type。:nth-child():nth-child伪类是根据父元素的子元素列表中的索引来选择元素。语法:nth-child是以一个参数nth来描述匹配兄弟元素......
  • 伪类选择器:动态伪类、结构伪类、否定伪类、UI伪类、目标伪类、语言伪类
    什么是伪类:很像类,但不是类,是元素特殊状态的一种描述。作用:选中特殊状态的元素1.动态伪类什么是动态伪类:因为它的变化是动态的,拿a:hover举例,一会悬浮一会不悬浮,是动态变化的。拿a标签举例:a:link 代表没有访问过的超链接      a:visited 代表访问过的超链接......
  • nodejs child_process 操作git 提交记录 提取git commit信息
    /***记录发布时的commit信息,用于区分内网版本包之间的差异*/importpathfrom'path';import{writeFileSync}from'fs';import{execSync}from'child_process';letoutputFileName=process.argv[2];if(!outputFileName){outputFileNam......
  • 【题解】【枚举】——First Step (ファーストステップ)
    【题解】【枚举】——FirstStepファーストステップFirstStep(ファーストステップ)题目背景题目描述输入格式输出格式输入输出样例输入#1输出#1提示1.思路解析2.AC代码FirstStep(ファーストステップ)原题在洛谷上题目背景我们Aqours,要第一次举办演唱会啦......
  • 读书笔记:Head First 设计模式
    HeadFirst设计模式EricFreemanPDF下载(亲测有效):https://baijiahao.baidu.com/s?id=1756899911272841212&wfr=spider&for=pc前言如何使用本书一些HeadFirst学习原则:可视化。图片更容易让人记住,文字放图片里使用会话式和个人化风格。会话式讲述内容。让学习者想得更深引......
  • First day01
    Markdown学习二级标题字体HelloWorldHelloWorldHelloWorldHelloWorldHelloWorld引用选择java走上人生巅峰分割线图片![截图](C:\Users\邢其俊\Pictures\Screenshots\屏幕截图2024-09-13180016.png)超链接[点击跳转到狂神博客](仓库-狂神说(kuangstud......
  • [CSS] 伪元素和伪类,::before 和 :before 区别
    特点伪类伪元素用途选择元素的状态或基于结构选择元素创建虚拟的内容,操作元素的某些部分语法使用单个冒号(......
  • redux-first-history
    redux-first-history这是一个把redux仓库和路由连接的库它有两个作用把地址栏中的新的路径保存到redux仓库中可以通过派发动作的方式跳转路径生成项目redux-first-historyReduxhistorybindingforreact-routercreate-react-apphs_redux_first_historycdhs_r......