详解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实现图片无间断轮播效果
Aug 25 HTML / CSS
css3绘制天猫logo实现代码
Nov 06 HTML / CSS
使用CSS3编写类似iOS中的复选框及带开关的按钮
Apr 11 HTML / CSS
CSS3 二级导航菜单的制作的示例
Apr 02 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
Mar 25 HTML / CSS
canvas绘制表情包的示例代码
Jul 09 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
Apr 28 HTML / CSS
带你认识HTML5中的WebSocket
May 22 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
Jul 20 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
Jan 30 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
Nov 11 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
重置版战役片段
2020/04/09 魔兽争霸
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
php操作xml
2013/10/27 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
Python中函数的用法实例教程
2014/09/08 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python数据类型学习笔记
2016/01/13 Python
使用Python写CUDA程序的方法
2017/03/27 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python爬虫与反爬虫大战
2020/07/30 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
python利用opencv实现颜色检测
2021/02/23 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
公司员工安全协议书
2014/11/21 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python