详解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 相关文章推荐
使用HTML5和CSS3表单验证功能
May 05 HTML / CSS
CSS3控制HTML元素动画效果
Feb 08 HTML / CSS
CSS3过渡transition效果实例介绍
May 03 HTML / CSS
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
Jan 05 HTML / CSS
H5混合开发app如何升级的方法
Jan 10 HTML / CSS
HTML5 manifest离线缓存的示例代码
Aug 08 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
Aug 28 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
Aug 29 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
Jul 18 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
Oct 14 HTML / CSS
如何在CSS中绘制曲线图形及展示动画
May 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/11/01 PHP
PHP生成唯一订单号
2015/07/05 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
js 页面输出值
2008/11/30 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
python中self原理实例分析
2015/04/30 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
六行python代码的爱心曲线详解
2019/05/17 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
英国足球店:UK Soccer Shop
2017/11/19 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
云冈石窟导游词
2015/02/04 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
信用卡收入证明范本
2015/06/12 职场文书
关于开学的感想
2015/08/10 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
施工安全责任协议书
2016/03/23 职场文书
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL
MySQL批量更新不同表中的数据
2022/05/11 MySQL
Django框架中模型的用法
2022/06/10 Python