问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

nth-child什么理解

发布网友 发布时间:2022-04-28 13:24

我来回答

2个回答

懂视网 时间:2022-04-28 17:45

本篇文章给大家带来的内容是简单比较一下nth-child和nth-of-type,让大家了解nth-child和nth-of-type分别是如何工作的。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

nth-child()和nth-of-type()都是css的“结构”伪类选择器,这些伪类选择器允许我们基于文档树中的信息选择元素,这些元素通常不能由其他简单选择器表示。

就nth-child()和nth-of-type()来说,额外信息是元素在文档树中相对于其父元素和兄弟元素的位置。 尽管这两个伪类非常相似,但它们的工作方式却截然不同。

nth-child()是怎样工作的?

nth-child()伪类用于根据数字匹配元素,该数字表示元素在其兄弟元素中的位置。更具体地说,数字表示文档树中元素(减去1)之前存在的兄弟姐妹的数量。

这个数表示为函数a+b,其中n是索引,a和b是我们通过的任何整数。例如,为了选择每一个元素,我们可以编写以下任何一个:

:nth-child(1n+0) { /* 样式 */ }
:nth-child(n+0) { /* 样式 */ }
:nth-child(1n) { /* 样式 */ }

除了使用这个函数,我们还可以传递一个整数,例如 :nth-child(1),或者set关键字,odd(奇数)或者even(偶数)。这些关键字是写出用于选择每个奇数或偶数元素的函数符号的备选方案。

:nth-child(odd) { /* 奇数元素的样式 */ }
:nth-child(2n+1) { /* 奇数元素的样式 */ }

:nth-child(even) { /* 偶数元素的样式 */ }
:nth-child(2n+0) { /* 偶数元素的样式 */ }

:nth-child()单独使用时,可以很容易地预测选择哪个元素。例如,使用此标记:

<div class="example">
	<p>This is a <em>paragraph</em>.</p>
	<p>This is a <em>paragraph</em>.</p>
	<p>This is a <em>paragraph</em>.</p>
	<div>This is a <em>divider</em>.</div>
	<div>This is a <em>divider</em>.</div> <!-- 选择元素-->
	<p>This is a <em>paragraph</em>.</p>
	<p>This is a <em>paragraph</em>.</p>
	<div>This is a <em>divider</em>.</div>
	<p>This is a <em>paragraph</em>.</p>
	<div>This is a <em>divider</em>.</div>
</div>

如果我们想选择第五个元素div,我们可以简单地写下面的内容

.example :nth-child(5) { background: #ffdb3a; }

1.png

但是,当存在多种类型的元素时,可能会出现意外结果,并且我们需要将:nth-child()伪类与类型或类选择器组合在一起。例如,要再次选择相同的div元素,我们可能会尝试编写以下内容:

.example div:nth-child(2) { background: #ffdb3a; }

这段代码不起作用!

不起作用的原因是因为选择器所针对的元素实际上并不存在。使用上述选择器,将执行以下步骤

1、选择所有 .example的子元素

2、查找该列表中的第二个元素,无论其类型如何

3、检查该元素是否是div的类型

由于文档树中的第二个元素是段落,而不是div,因此不会选择任何内容。如果我们想要选择第二个div元素,我们将不得不使用nth-of-type()伪类。

nth-of-type()是怎样工作的?

nth-of-type()伪类,如nth-child()一样,是用于根据一个元素匹配一个元素。然而,它里面的数字表示元素的位置仅在其兄弟姐妹中具有相同元素类型的位置。

nth-of-type()里面的参数也可以表示为函数,或使用关键字even或odd。使用上面的示例标记,我们可以通过写入选择所有奇数段落:

.example p:nth-of-type(odd) { background: #ffdb3a; }

2.png

当我们使用此选择器时,将执行以下步骤:

1、选择.example的所有p类型子元素

2、仅创建这些元素的新列表

3、从列表中选择奇数

因此,我们现在可以选择.example的第二个div,即第五个孩子:

.example div:nth-of-type(2) { /* 样式 */ }

总结:

热心网友 时间:2022-04-28 14:53

:nth-child 不区分子元素的类型,而 :nth-of-type 则区分子元素的类型。
比如说<pre t="code" l="html"><style>
div :nth-child(odd) {background:red}
div :nth-child(even) {background:blue}
</style>
<div>
<h1>第1行</h1>
<p>第2行</p>
<p>第3行</p>
<h2>第4行</h2>
<p>第5行</p>
<h1>第6行</h1>
<h2>第7行</h2>
</div>结果是:第1行红色第2行蓝色第3行红色第4行蓝色第5行红色第6行蓝色第7行红色
如果改为<pre t="code" l="html"><style>
div :nth-of-type(odd) {background:red}
div :nth-of-type(even) {background:blue}
</style>
<div>
<h1>第1行</h1>
<p>第2行</p>
<p>第3行</p>
<h2>第4行</h2>
<p>第5行</p>
<h1>第6行</h1>
<h2>第7行</h2>
</div>则结果是:第1行红色第2行红色第3行蓝色第4行红色第5行红色第6行蓝色第7行蓝色
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 怎样不用ID或电脑在苹果手机上下载东西? 苹果电脑没有id怎么下载软件 苹果电脑不用id可以下载吗 水培该怎么养殖 水培绿萝的养殖方法 书的简笔画怎么画 水养绿萝需要什么样的水,什么水对绿萝好 拿着书的手怎么画 一个人站着拿着书怎么画 求小说,快穿的!快穿小说求文名,bl的! 有没有类似渣男洗白手册类似的快穿小说? 求文,快穿文,男主视角,无cp,把配角&#47;路人&#47;炮灰活成了男神,有个系统 三星堆到底是哪个时期的产物?为什么有人认为三星堆文明是外星文明... 是什么原因导致乙肝大三阳? 我是渣男[快穿]_by从南而生_txt全文免费阅读 乙肝大三阳是由什么原因引起的 我不是渣男[快穿]星不是三金哪里可以免费看? 乙肝是由什么原因引起的? 《快穿我不是渣男》txt下载在线阅读全文,求百度网盘云资源 为什么我会得乙肝,而其他人不会?如题 谢谢了 乙肝病情反复发作是什么原因 怎么在电脑管家看别人蹭网 台湾人结婚头上插的花叫什么名字? 我用电脑管家搜出了几台蹭网的可疑设备,但不会禁止他们使用啊= =图片见下 婚礼新娘头花由男方准备还是女方 如何用电脑管家把蹭网的人拉回来 我用电脑管家的无线安全助手发现有人蹭网,怎么办? QQ电脑管家提示有蹭网设备,可我改了路由器的无线密码重启路由器后还是能检测到那台电脑在蹭网,这是为啥 结婚当天的新娘头上为什么要带鲜花? 新娘子的头花如何佩戴? 无线网怎么看有有人蹭网安全管家 结婚当天头花 华为手机如何放到电脑上 能在电脑上释放华为云空间么 如何将电脑上的游戏放在华为手机上 魔兽争霸重制版的RPG地图我应该放在哪个文件夹内?注意是重制版的 哪个是魔兽争霸地图文件? 请问魔兽争霸3的战役地图下到哪个文件夹里啊?谢谢 魔兽争霸的地图下下来要放在哪个文件夹里 游戏中才会有? 我下了魔兽争霸RPG防守地图 不知道应该把地图文件放在哪里 请详细说明 地图是文件包 魔兽争霸的地图放在那个文件夹?