详解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的rem属性制作响应式页面布局的要点解析
May 24 HTML / CSS
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
Feb 07 HTML / CSS
CSS3 实现侧边栏展开收起动画
Dec 22 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
Feb 14 HTML / CSS
用html5的canvas画布绘制贝塞尔曲线完整代码
Aug 14 HTML / CSS
html5中valid、invalid、required的定义
Feb 21 HTML / CSS
详解HTML5中download属性的应用
Aug 06 HTML / CSS
详解WebSocket跨域问题解决
Aug 06 HTML / CSS
web字体加载方案优化小结
Nov 29 HTML / CSS
浅析HTML5 meta viewport参数
Oct 28 HTML / CSS
html中相对位置与绝对位置的具体使用
May 15 HTML / CSS
使用CSS实现六边形的图片效果
Aug 05 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来实现网络服务
2009/09/15 PHP
php URL验证正则表达式
2011/07/19 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
JS 实现完美include载入实现代码
2010/08/05 Javascript
js常用代码段收集
2011/10/28 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
回顾Javascript React基础
2019/06/15 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python动态参数用法实例分析
2015/05/25 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
用python解压分析jar包实例
2020/01/16 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
研究生导师推荐信
2015/03/25 职场文书
培训感想范文
2015/08/07 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
MySQL8.0.18配置多主一从
2021/06/21 MySQL
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python