详解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 相关文章推荐
10个很棒的 CSS3 开发工具 推荐
May 16 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
Jan 31 HTML / CSS
css3进行截取替代js的substring
Sep 02 HTML / CSS
一款基于css3和jquery实现的动画显示弹出层按钮教程
Jan 04 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
Apr 28 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
Dec 20 HTML / CSS
html+css实现自定义图片上传按钮功能
Sep 04 HTML / CSS
HTML5 与 XHTML2
Oct 17 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
Dec 13 HTML / CSS
HTML5 语音搜索只需一句代码
Jan 03 HTML / CSS
html5表单及新增的改良元素详解
Jun 07 HTML / CSS
canvas绘制太极图的实现示例
Apr 29 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
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
JavaScript中的私有成员
2006/09/18 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
外企求职信范文分享
2013/12/31 职场文书
小学班级口号
2014/06/09 职场文书
南京大屠杀观后感
2015/06/02 职场文书
导游词之杭州西湖
2019/09/19 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang