详解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 18 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
Sep 02 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
Sep 06 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
Sep 10 HTML / CSS
css3 transform过渡抖动问题解决
Oct 23 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
Jan 07 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
Jan 09 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
May 09 HTML / CSS
canvas 实现 github404动态效果的示例代码
Nov 15 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
Sep 09 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
Aug 24 HTML / CSS
浅谈移动端中的视口(viewport)的具体使用
Apr 13 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
如何将数据从文本导入到mysql
2006/10/09 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
js倒计时抢购实例
2015/12/20 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
Python解决鸡兔同笼问题的方法
2014/12/20 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
python获取url的返回信息方法
2018/12/17 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
python中数据库like模糊查询方式
2020/03/02 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
介绍一下#error预处理
2015/09/25 面试题
十八届三中全会宣传方案
2014/02/21 职场文书
继承权公证书
2014/04/09 职场文书
被委托人身份证明
2015/08/07 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
python获取对象信息的实例详解
2021/07/07 Python
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python