详解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的transition和animation的用法实例介绍
Aug 20 HTML / CSS
使用CSS3来制作消息提醒框
Jul 12 HTML / CSS
CSS3中使用RGBA设置透明度的示例
Aug 04 HTML / CSS
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
Feb 07 HTML / CSS
css3 利用transform打造走动的2D时钟
Oct 20 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
Jan 07 HTML / CSS
html5中valid、invalid、required的定义
Feb 21 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
May 29 HTML / CSS
HTML5实现可缩放时钟代码
Aug 28 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
Nov 10 HTML / CSS
CSS 实现多彩、智能的阴影效果
May 12 HTML / CSS
什么是css原子化,有什么用?
Apr 24 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分页类代码
2013/04/02 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
js快速排序的实现代码
2013/12/08 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
Python实现控制台输入密码的方法
2015/05/29 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
客户代表实习人员自我鉴定
2013/09/27 职场文书
企划经理的岗位职责
2013/11/17 职场文书
护理专业自荐信
2013/12/03 职场文书
财会自我鉴定范文
2013/12/27 职场文书
物业管理计划书
2014/01/10 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
实习生岗位职责
2014/04/12 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
工伤事故证明
2014/10/20 职场文书
预备党员个人总结
2015/02/14 职场文书
英文辞职信范文
2015/05/13 职场文书
音乐研修感悟
2015/11/18 职场文书
民事调解协议书
2016/03/21 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电