详解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 相关文章推荐
纯CSS实现预加载动画效果
Sep 06 HTML / CSS
CSS3对图片照片进行边缘模糊处理的实现
Aug 08 HTML / CSS
CSS3的新特性介绍
Oct 31 HTML / CSS
一款纯css3实现的非常实用的鼠标悬停特效演示
Nov 05 HTML / CSS
CSS3常用的几种颜色渐变模式总结
Nov 18 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
Jan 17 HTML / CSS
CSS3关于z-index不生效问题的解决
Feb 19 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
Jul 10 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
Jan 01 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
Jan 20 HTML / CSS
HTML5 新表单类型示例代码
Mar 20 HTML / CSS
CSS中calc(100%-100px)不加空格不生效
May 07 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设计模式 Interpreter(解释器模式)
2011/06/26 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
Django 使用logging打印日志的实例
2018/04/28 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
教师实习自我鉴定
2013/12/13 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
学生上课说话检讨书
2014/10/25 职场文书
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
vue中 this.$set的使用详解
2021/11/17 Vue.js