详解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 相关文章推荐
IE兼容css3圆角的实现代码
Jul 21 HTML / CSS
常用的四种CSS透明属性介绍
Apr 12 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
基于CSS3制作立体效果导航菜单
Jan 12 HTML / CSS
HTML5 File API改善网页上传功能
Aug 19 HTML / CSS
HTML5 声明兼容IE的写法
May 16 HTML / CSS
html5中地理位置定位api接口开发应用小结
Jan 04 HTML / CSS
HTML5的语法变化介绍
Aug 13 HTML / CSS
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
Apr 26 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
Dec 02 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
Aug 19 HTML / CSS
Canvas绘制像素风图片的示例代码
Sep 25 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事务回滚简单实现方法示例
2017/03/28 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
python求最大值最小值方法总结
2019/06/25 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
VC++笔试题
2014/10/13 面试题
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
医生个人年度总结
2015/02/28 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
学习十八大的感悟
2015/08/11 职场文书