详解CSS3选择器:nth-child和:nth-of-type之间的差异


Posted in HTML / CSS onSeptember 18, 2017

先看一个简单的实例,首先是HTML部分:

<section>
    <p>我是第1个p标签</p>
    <p>我是第2个p标签</p>  <!-- 希望这个变红 -->
</section>

然后两个选择器相对应的CSS代码如下:

p:nth-child(2) { color: red; }
p:nth-of-type(2) { color: red; }

上面这个例子中,这两个选择器所实现的效果是一致的,第二个p标签的文字变成了红色:

详解CSS3选择器:nth-child和:nth-of-type之间的差异

尽管上面两个demo的最后效果一致,但是两个选择器之间存在差异是必然的。

对于:nth-child选择器,在简单白话文中,意味着选择一个元素:

1、这是个段落元素
2、这是父标签的第二个孩子元素

对于:nth-of-type选择器,意味着选择一个元素:

1、选择父标签的第二个段落子元素

我们把上面的实例稍作修改,就可以看到这两个选择器之间的差异表现了,如下HTML代码:

<section>
    <div>我是一个普通的div标签</div>
    <p>我是第1个p标签</p>
    <p>我是第2个p标签</p>  <!-- 希望这个变红 -->
</section>

还是与上面例子一致的CSS测试代码:

p:nth-child(2) { color: red; }

详解CSS3选择器:nth-child和:nth-of-type之间的差异

 

p:nth-of-type(2) { color: red; }

详解CSS3选择器:nth-child和:nth-of-type之间的差异

这时候两个选择器所渲染的结果就不一样了。

p:nth-child(2)其渲染的结果不是第二个p标签文字变红,而是第一个p标签,也就是父标签的第二个子元素。

p:nth-of-type(2)的表现显得很坚挺,其把希望渲染的第二个p标签染红了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3对背景图片的裁剪及尺寸和位置的设定方法
Mar 07 HTML / CSS
css3 中的新特性加强记忆详解
Apr 16 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
Jul 06 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
Jan 09 HTML / CSS
HTML5样式控制示例代码
Nov 27 HTML / CSS
HTML5中新标签和常用标签详解
Mar 07 HTML / CSS
详解HTML5中download属性的应用
Aug 06 HTML / CSS
canvas实现圆形进度条动画的示例代码
Dec 26 HTML / CSS
使用canvas压缩图片大小的方法示例
Aug 02 HTML / CSS
AmazeUI 输入框组的示例代码
Aug 14 HTML / CSS
CSS 一行代码实现头像与国旗的融合
Oct 24 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
Sep 15 #HTML / CSS
CSS3 Calc实现滚动条出现页面不跳动问题
Sep 14 #HTML / CSS
基于CSS3 animation动画属性实现轮播图效果
Sep 12 #HTML / CSS
用css3写出气球样式的示例代码
Sep 11 #HTML / CSS
CSS3的 fit-content实现水平居中
Sep 07 #HTML / CSS
CSS3的calc()做响应模式布局的实现方法
Sep 06 #HTML / CSS
HTML+CSS3模拟心的跳动实例代码
Sep 05 #HTML / CSS
You might like
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
antd design table更改某行数据的样式操作
2020/10/31 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
用Python实现KNN分类算法
2017/12/22 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python对象转换为json的方法步骤
2019/04/25 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
基于python实现模拟数据结构模型
2020/06/12 Python
Python中Selenium模块的使用详解
2020/10/09 Python
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
个人思想理论学习的自我鉴定
2013/11/30 职场文书
亮化工程实施方案
2014/03/17 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
政风行风评议整改方案
2014/09/15 职场文书
心得体会格式及范文
2016/01/25 职场文书
MySQL创建管理子分区
2022/04/13 MySQL