详解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 border-radius属性详解
Jul 05 HTML / CSS
css3 中实现炫酷的loading效果
Apr 26 HTML / CSS
35款精致的 CSS3 和 HTML5 网页模板 推荐
Aug 03 HTML / CSS
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
Oct 11 HTML / CSS
一款纯css3实现的漂亮的404页面的实例教程
Nov 27 HTML / CSS
用React加CSS3实现微信拆红包动画效果
Mar 13 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
Jan 26 HTML / CSS
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
Jan 31 HTML / CSS
用HTML5制作数字时钟的教程
May 11 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
HTML5自定义mp3播放器源码
Jan 06 HTML / CSS
html5拖拽应用记录及注意点
May 27 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
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
jQuery技巧总结
2011/01/01 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
JS实现拼图游戏
2021/01/29 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python文件的读写和异常代码示例
2017/10/31 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
python脚本实现验证码识别
2018/06/07 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
python如何统计代码运行的时长
2019/07/24 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
医学检验专业大学生求职信
2013/11/18 职场文书
会计系个人求职信范文分享
2013/12/20 职场文书
大学老师推荐信
2014/02/25 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
师范生求职自荐信
2014/06/14 职场文书
法人授权委托书
2014/09/16 职场文书
四大名著读书笔记
2015/06/25 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
Python实现日志实时监测的示例详解
2022/04/06 Python
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS