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安全错误 数据库的锁怎样保障安全 服务器成品质检表模板 应用软件开发都有哪些 白银市网络安全宣传周 计算机网络技术的笔记 数据库安全性的管理办法 直销奖金软件开发 高级数据库技术复习资料 网络安全学院建设项目 广州花朵网络技术 嘉定区智能化软件开发采购 北京开源软件开发it技术 自建dhcp服务器好处 服务器 阵列卡 数据库服务器设备 网络安全活动月2020年 跟网络安全相关的英文词汇 eb服务器价格 施秉软件开发系统 如何监测学校网络安全 台州专业网络安全准入控制公司 启用4g单数据库 数据库中心机房建设类别 不属于数据库的范式 江门专业软件开发 电子商务网络技术考题 如何理解软件开发成本昂贵 java游戏服务器开发大厂 海豚数据库 来源数据库 面向数据库的数据集成系统 服务器的安全防护措施