深入理解 nth-child 和 nth-of-type 的区别
ele:nth-of-type(n) 为什么叫 of-type ,就是说它是以“type”来区分的,也就是说ele:nth-of-type(n)指的是父元素下第n个ele元素。
ele:nth-child(n) 指的是父元素下第n个元素且这个元素是ele,若没有,则选择失败。
举例:
<style>
.div-parent span:nth-child(2){
color:red;
}
.div-parent span:nth-of-type(2){
color:yellow;
}
</style> <div class="div-parent">
<p>这是段落P</p>
<span>这是span1</span>
<span>这是span2</span>
</div>
结果为:
这是段落P
这是span1 这是span2
说明:
span:nth-child(2) 选择的是所有子元素中的第二个元素,这个元素必须是span
span:nth-of-type(2) 选择的是所有的span子元素中的第二个元素。
如果在nth-child 和 nth-of-type前不指定标签呢?
举例:
<style>
.div-parent :nth-child(2){
color:red;
}
.div-parent :nth-of-type(2){
color:yellow;
}
</style> <div class="div-parent">
<p>这是段落P1</p>
<span>这是span1</span>
<span>这是span2</span>
<p>这是段落P2</p>
</div>
结果为:
这是段落P1
这是span1 这是span2
这是段落P2
说明:
:nth-child(2) 不管是否指定标签,:nth-child(2)选择的都是第二个子元素,只不过如果指定了标签,那第二个元素就必须是该标签元素,否则选择失败。
:nth-of-type(2) 它选中了两个元素,分别是父级.div-parent 下第二个p标签和第二个span标签,说明,:nth-of-type(2) 选择的是各个子类型标签的第二个元素。
最后,我们了解一下,:nth-child(n) 和 :nth-of-type(n) 括号中的n代表什么?
说明:
上述选择器中的n,可以是数字,关键字和公式
① 数字:前面举例已经说明了, 1就是第一个 、2就是第二个
② 关键字: odd 和 even 匹配下标是奇数或偶数的子元素关键字,第一个子元素下标是1,那odd就是第1,3,5,7...个子元素
③ 公式:就是一种算数表达式,表示周期,n是从0开始计数
比如 2n,就是下标是2的倍数的子元素,其实就等同于even
比如n+2,就是下标不小于2的子元素,其实就是第2,3,4,5,6...个
特别说明下面这个例子:
<style>
.div-parent .item:nth-of-type(2){
color:yellow;
}
</style> <div class="div-parent">
<p>这是段落P1</p>
<span>这是span1</span>
<span class="item">这是span2</span>
</div>
结果:
这是段落P1
这是span1 这是span2
说明:
.item:nth-of-type(2) ,指的是span2,就等同于 span:nth-of-type(2)。而 .item:nth-of-type(1)是无效的,选择失败。因为span1,没有这个类.item
所以说,如果 :nth-of-type(2) 前指定的元素是类,选择的是指定类对应的标签下的第二个元素,且这个元素的类是指定类。
深入理解 nth-child 和 nth-of-type 的区别的更多相关文章
- 现代C++之理解模板类型推断(template type deduction)
理解模板类型推断(template type deduction) 我们往往不能理解一个复杂的系统是如何运作的,但是却知道这个系统能够做什么.C++的模板类型推断便是如此,把参数传递到模板函数往往能让 ...
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...
- 【转】为什么我们都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- ASP.NET控件<ASP:Button /> html控件<input type="button">区别联系
ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样 ...
- Index 和 Type 的区别
原文: Index vs. Type By Adrien Grand 译者: fengchang 对于 ES 的新用户来说,有一个常见的问题:要存储一批新的数据时,应该在已有 index 里新建一个 ...
- vue系列---理解Vue中的computed,watch,methods的区别及源码实现(六)
_ 阅读目录 一. 理解Vue中的computed用法 二:computed 和 methods的区别? 三:Vue中的watch的用法 四:computed的基本原理及源码实现 回到顶部 一. 理解 ...
- 深入理解Javascript中构造函数和原型对象的区别
在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor) ...
- 理解Java中字符流与字节流的区别
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- 5分钟理解iaas paas saas三种云服务区别
随着云计算的大热,向我咨询云计算相关问题的童鞋也越来越多,其中最近问的比较多的一个问题便是云计算中的pass是什么意思?整好今天有空,统一给大家解释下pass是什么意思?和Iass.Sass之间有什么 ...
- const type& 与 type& 的区别
const type& 与 type& 是C/C++编程中容易混淆的两个知识点,现在以 cont int& 与 int& 为例讲解: 1.int& 讲解 int ...
随机推荐
- JS获取两个日期间的所有日期
var stime = '2018-07-25'; //开始日期 var etime = '2018-08-02'; //结束日期 getdiffdate(stime,etime); //获取两日期之 ...
- Django + Celery 实现动态配置定时任务
哈喽,今天给大家分享一篇Django+Celery实现动态配置定时任务,因为最近也是无意间看到一位大佬关于这块的文章,然后自己觉得不错,也想学习写一下,然后最终实现功能是在前端页面统一管理计划任务,大 ...
- 【GAN】GAN设计与训练集锦
以下内容纯属经验之谈,无公式推断!部分内容源自其他博客或课程,并已标注来源. 问题篇[1] 1.模式崩溃 在某个模式(mode)下出现大量重复样本,如左图中,生成的样本分布靠得很近,较聚集,可视化如右 ...
- (板子)缩点 + DAG上的DP(深搜)luogu P3387
板子传送门 根据题目意思,我们只需要找出一条点权最大的路径就行了,不限制点的个数.那么考虑对于一个环上的点被选择了,一整条环是不是应该都被选择,这一定很优,能选干嘛不选.很关键的是题目还允许我们重复经 ...
- hashMap探析
本篇文章包括: 数据结构 各个参数 为什么数组的长度是2的整数次方 为什么要将装载因子定义为0.75 为什么链表转红黑树的阈值为8 hash碰撞 put方法 resize方法 jdk7中数组扩容产生环 ...
- SpringBoot系列—简单的邮件系统
1. 效果发送效果图 2. 邮件开发准备工作 3. springboot引入mail服务 4. 启动应用,开始4种邮件发送测试 1. 效果发送效果图 连续发送了四封邮件:普通文本邮件,带附件的邮件,内 ...
- 图解MySQL索引(二)—为什么使用B+Tree
失踪人口回归,近期换工作一波三折,耽误了不少时间,从今开始每周更新~ 索引是一种支持快速查询的数据结构,同时索引优化也是后端工程师的必会知识点.各个公司都有所谓的MySQL"军规" ...
- Linux(二) 系统远程访问
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1. Why?为什么需要远程访问? 人和人之间对话有两种方式,一种是面对面直接交谈,另一种是打电话. 我 ...
- (Java实现)洛谷 P1093 奖学金
题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高 ...
- Java实现 LeetCode 5355 T 秒后青蛙的位置
5355. T 秒后青蛙的位置 给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n.青蛙从 顶点 1 开始起跳.规则如下: 在一秒内,青蛙从它所在的当前顶点跳到另一个 未访问 过的顶点(如果它 ...