详解CSS3中nth-child与nth-of-type的区别


Posted in HTML / CSS onJanuary 05, 2017

CSS3中nth-child与nth-of-type的区别其实很简单::nth-of-type为什么要叫:nth-of-type?因为它是以"type"来区分的。也就是说:ele:nth-of-type(n)是指父元素下第n个ele元素, 而ele:nth-child(n)是指父元素下第n个元素且这个元素为ele,若不是,则选择失败。

文字未免听起来比较晦涩,便于理解,这里附上一个小例子:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
</head>
<style>
.demo li:nth-child(2){
color: #ff0000;
}
.demo li:nth-of-type(2){
color: #00ff00;
}
</style>
<body>
<div>
<ul class="demo">
<p>zero</p>
<li>one</li>
<li>two</li>
</ul>
</div>
</body>
</html>

结果如下:

详解CSS3中nth-child与nth-of-type的区别

上面这个例子,.demo li:nth-child(2)选择的是<li>one</li>节点,而.demo li:nth-of-type(2)则选择的是<li>two</li>节点。

但是如果在nth-child和 nth-of-type前不指定标签呢?

.demo :nth-child(2){
color: #ff0000;
}
.demo :nth-of-type(2){
color: #00ff00;
}

这样又会是什么结果呢,看下html结构:

<ul class="demo">
<p>first p</p>
<li>first li</li>
<li>second li</li>
<p>second p</p>
</ul>

结果:

详解CSS3中nth-child与nth-of-type的区别

如上可见,在他们之前不指定标签类型,:nth-child(2) 选中依旧是第二个元素,无论它是什么标签。而 :nth-type-of(2) 选中了两个元素,分别是父级.demo中的第二个p标签和第二个li标签,由此可见,不指定标签类型时,:nth-type-of(2)会选中所有类型标签的第二个。

我们已经了解了nth-child和 nth-of-type的基本使用与区别,那么更进一步nth-of-type(n)与nth-child(n)中的n是什么呢?

nth-of-type(n)与nth-child(n)中的n可以是数字、关键词或公式。 数字:也就是上面例子的使用,就不做赘述。 关键词:Odd 、even

Odd 和 even 是可用于匹配下标是奇数或偶数的子元素的关键词

注意:第一个子元素的下标是 1

在这里,我们为奇数和偶数 p 元素指定两种不同的背景色:

p:nth-of-type(odd)
{
background:#ff0000;
}
p:nth-of-type(even)
{
background:#0000ff;
}

公式:或者说是算术表达式

使用公式 (an + b)。描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值。

在这里,我们指定了下标是 3 的倍数的所有 p 元素的背景色:

p:nth-of-type(3n+0)
{
background:#ff0000;
}

若是 :nth-of-type(4n+2) 就是选择下标是4的倍数加上2的所有元素

总结

以上就是关于css3中nth-child和 nth-of-type区别的全部内容了,希望本文的内容对大家学习或者使用CSS3能有一定的帮助,如果有疑问大家可以留言交流。

HTML / CSS 相关文章推荐
css3实现背景模糊的三种方式
Mar 09 HTML / CSS
详解CSS3 弹性布局快速入门
Jun 06 HTML / CSS
你应该知道的30个css选择器
Mar 19 HTML / CSS
10种CSS3实现的loading动画,挑一个走吧?
Nov 16 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
Jul 05 HTML / CSS
Html5剪切板功能的实现代码
Jun 29 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
Jan 16 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
Jan 31 HTML / CSS
针对HTML5的Web Worker使用攻略
Jul 12 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
Aug 06 HTML / CSS
新的CSS 伪类函数 :is() 和 :where()示例详解
Aug 05 HTML / CSS
CSS3打造百度贴吧的3D翻牌效果示例
Jan 04 #HTML / CSS
谈谈对css属性box-sizing的了解
Jan 04 #HTML / CSS
纯CSS3制作的鼠标悬停时边框旋转
Jan 03 #HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
Dec 30 #HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
Dec 30 #HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 #HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
Dec 22 #HTML / CSS
You might like
十天学会php之第八天
2006/10/09 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
python实现输出一个序列的所有子序列示例
2019/11/18 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Django choices下拉列表绑定实例
2020/03/13 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
python中实现词云图的示例
2020/12/19 Python
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
电工工作职责范本
2014/02/22 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
yy司仪主持词
2014/03/22 职场文书
创先争优个人承诺书
2014/08/30 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
美丽的大脚观后感
2015/06/03 职场文书
中学团支部工作总结
2015/08/13 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python