详解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 相关文章推荐
CSS图片翻转动画技术详解(IE也实现了)
Apr 03 HTML / CSS
css3的图形3d翻转效果应用示例
Apr 08 HTML / CSS
纯css3实现的竖形无限级导航
Dec 10 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
Jul 23 HTML / CSS
HTML5 实现一个访问本地文件的实例
Dec 13 HTML / CSS
html5 svg 中元素点击事件添加方法
Jan 16 HTML / CSS
使用HTML5技术开发一个属于自己的超酷颜色选择器
Sep 22 HTML / CSS
HTML5+CSS3实现机器猫
Oct 17 HTML / CSS
使用css样式设计一个简单的html登陆界面的实现
Mar 30 HTML / CSS
web前端之css水平居中代码解析
May 20 HTML / CSS
关于CSS浮动与取消浮动的问题
Jun 28 HTML / CSS
开发微信小程序之WXSS样式教程
Apr 18 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
php中一个完整表单处理实现代码
2011/11/10 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
Python实现的下载网页源码功能示例
2017/06/13 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
高效使用Python字典的清单
2018/04/04 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
python实现逻辑回归的示例
2020/10/09 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
装修活动策划方案
2014/08/27 职场文书
小学运动会加油词
2015/07/18 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang