详解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实现毛玻璃效果示例源码
Sep 25 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
May 23 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
Sep 05 HTML / CSS
如何使用localstorage代替cookie实现跨域共享数据问题
Apr 18 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
Apr 04 HTML / CSS
html5 button autofocus 属性介绍及应用
Jan 04 HTML / CSS
5 个强大的HTML5 API 函数推荐
Nov 19 HTML / CSS
HTML5中drawImage用法分析
Dec 01 HTML / CSS
html5中canvas图表实现柱状图的示例
Nov 13 HTML / CSS
html2canvas把div保存图片高清图的方法示例
Mar 05 HTML / CSS
用canvas做一个DVD待机动画的实现代码
Apr 12 HTML / CSS
CSS实现五种常用的2D转换
Dec 06 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
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
js 通用订单代码
2013/12/23 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python发布模块的步骤分享
2014/02/21 Python
python随机生成指定长度密码的方法
2015/04/04 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
木工主管岗位职责
2013/12/08 职场文书
文明风采获奖感言
2014/02/18 职场文书
销售求职信范文
2014/05/26 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技
基于Python实现西西成语接龙小助手
2022/08/05 Golang