CSS中nth-child与nth-of-type的元素查找方式是什么
本文小编为大家详细介绍"CSS中nth-child与nth-of-type的元素查找方式是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"CSS中nth-child与nth-of-type的元素查找方式是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
nth-child和nth-of-type是css的两个伪选择符。应用中,这两者常常容易混淆。这里把它们拿出来仔细做个对比,看看这两者是怎么查找元素的。
nth-child(n) —— 寻找第n个子元素
nth-of-type(n) —— 寻找同一类型元素里的第n个元素
看这个定义也许还不是很清楚他们的区别,我们一点点来区分。
p:nth-child(2) 与 p:nth-pf-type(2)
HTML代码如下
pgh2
pgh3
pgh4
pgh5
div1
div2
div3
div4
分别应用两个样式, 都是找第二个元素
p:nth-child(2) { color: red; font-weight:bold;}h6:nth-of-type(2) { color: blue; font-weight:bold;}结果:两者都应用成功。
现在我们对HTML代码做点改动,让他们出现一些不同。我们将第一个p元素和第一个h6元素改为label,代码如下:
pgh3
pgh4
pgh5
div2
div3
div4
样式不变,这时再来看效果,发现nth-of-type(2)结果变了,这时高亮的是div3。到这里也算符合我们的逻辑。h6:nth-of-type(2)要找的是第二个h6类型的元素,也就是div3。
继续改动HTML代码。我们恢复第一个p元素和第一个h6元素,将第二个p元素和第二个h6元素改为label,样式仍保持不变,结果会怎样呢?
HTML如下:
pgh2
pgh4
pgh5
div1
div3
div4
CSS 不变:
p:nth-child(2) { color: red; font-weight:bold;}h6:nth-of-type(2) { color: blue; font-weight:bold;}结果:nth-child没有效果,nth-of-type高亮的是div3。
为什么会这样呢?
nth-child 是查找一堆兄弟元素里的第二个元素,不管那元素是什么,只要它排行老二。这里左侧div找到的是,右侧div找到的是。找到之后,再和前面的选择符进行匹配,如果匹配对了,那就应用样式。前面的选择符是p,也就是要求元素是p类型,但这里都是label,不匹配,两个元素都不会应用这个样式。
nth-of-type 是在一堆兄弟元素里找到相同HTML标记类型(Markup Type)元素中排行第二的元素。在左侧的div中,
pgh4
是p类型里排行第二的元素;在右侧的div中,div3
是h6类型里排行第二的元素。找到之后,再和前面的选择符进行匹配,如果匹配对了,那就应用样式。前面的选择符是h6, 那么只有右侧div的div3
元素应用了样式,左侧div的pgh4
则不会。所以,nth-child和nth-of-type的不同之处就是查找元素的方式不同。前者是查找兄弟元素中某个绝对位置的元素,后者是查找同类型元素中某个绝对位置的元素。相同之处是,两者都是找到元素之后再与前面的选择符进行匹配,这里的匹配方式是一样的。
稍微往下延伸,清楚了查找方式,那么不管前面的选择符怎么变,最后都是先查找到元素再与前面的选择符进行匹配。也就是说选择符与他们的查找方式没有关系。弄清楚这个就不会被不同的组合混淆了。
p:nth-child(2) 正确:查找第二个元素,且这个元素是p。错误:查找第二个为p的元素
.info:nth-child(2) 正确:查找第二个元素,且这个元素的class包含"info"。错误:查找第二个class包含"info"的元素。
p:nth-of-type(2) 查找相同HTML标记类型中排行第二的元素,且这个元素是p(或者直观的说查找第二个p类型元素)
.info:nth-of-type(2) 查找相同HTML标记类型中排行第二的元素,且这个元素的class包含"info"
读到这里,这篇"CSS中nth-child与nth-of-type的元素查找方式是什么"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
元素 类型 选择 方式 样式 应用 不同 相同 代码 结果 两个 也就是 兄弟 右侧 文章 标记 清楚 对了 位置 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 化工数据库技术应用 dell服务器cpu参数 网络安全集中培训心得体会 php链接数据库查询数据 当前思想廉政网络安全形势 阿里云轻量服务器数据库 阿里云服务器流量需要多少钱 校园网络安全事件追究责任制 什么不属于数据库应用系统 软件开发需求采集表 对网络安全员培训的意义 如何查看数据库的字符集 彭州网络安全中奖名单 有什么免费的高速服务器 图数据库的代表 浏阳软件开发中职学校 从数据库取数据 我的世界服务器声望 linux服务器挖矿收益 网络技术的研究开发是什么 学网络安全需要考什么证吗 魔兽服务器查找角色 剪切音乐软件开发 怀旧服怎么发数据库装备 魔兽世界哪个服务器资源最好 数据库的实训心得 软件开发和维护的区别 网络安全威胁处置制度 中软飞腾服务器 有什么免费的高速服务器