详解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 box-shadow阴影(外阴影与外发光)图示讲解
Aug 11 HTML / CSS
CSS3新增布局之: flex详解
Jun 18 HTML / CSS
HTML5移动端开发遇见的东西
Oct 11 HTML / CSS
socket.io 和canvas 实现的共享画板功能
May 22 HTML / CSS
input元素的url类型和email类型简介
Jul 11 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
Jan 09 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
Apr 23 HTML / CSS
Html5 语法与规则简要概述
Jul 29 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
Jan 29 HTML / CSS
使用Html5 Stream开发实时监控系统
Jun 02 HTML / CSS
css之clearfix的用法深入理解(必看篇)
May 21 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中与数组相关的函数
2007/03/22 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
python打包成so文件过程解析
2019/09/28 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
中级会计大学生职业生涯规划书
2014/09/16 职场文书
第一书记观后感
2015/06/08 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
小学数学教学反思范文
2016/02/16 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
python状态机transitions库详解
2021/06/02 Python
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
nginx容器方式反向代理实战
2022/04/18 Servers
基于redis+lua进行限流的方法
2022/07/23 Redis