css选择器nth-child和nth-of-type区别

简介: css选择器nth-child和nth-of-type区别

目录


首先


<body>
    <div id="box1">
        <em id="em1">1111</em>
    </div>
    <em id="em2">2222</em>
    <div id="box2">
        <em id="em3">3333</em>
        <em id="em4">4444</em>
    </div>
</body>

image.png

nth-child


<style>
    em:nth-child(1) {
        color: red;
    }
</style>
  1. nth-child会寻找所有em的父元素的所有子元素进行划区。
  2. em1父元素是box1这个div,它的所有子元素就一个em,圈起来。
  3. em2父元素是body,所有子元素依次是box1、em、box2。
  4. em3和em4父元素都是box2,是同一个区域,所有子元素就是两个em。

image.png

结果:

  1. 三个区域找nth-child(n)里面找第n个元素,然后检查是不是em,是的话就生效,不是就不生效
  2. n为1时,第一个区域就一个em1,生效
  3. 第二个区域第一个元素为div不是em2,失效
  4. 第三个区域第一个元素是em3,生效

image.png

如果n为2的话就是em2和em4生效了,你可以根据上面的方法推断出来吗?

nth-of-type


<style>
    em:nth-of-type(1) {
        color: red;
    }
</style>

结果:

1.还是同样的划区方法,不过,会剔除所有区域中不是em的元素,这就是区别。

2.区域1和3还是一样的,区域2剔除了box1和box2,区域里只剩下一个em2,n为1时被选中。

image.png

如果n取2时,只有em4被选中噢

nth-child如果前面不添加筛选查找元素



  1. 不推荐这么使用,筛选范围太泛了。
  2. 我们上文是使用em:nth-child(n),如果不添加em,也就是会将所有区域划分且没有限制元素是什么了,只要是第n个就添加样式。

例:

首先我们还是将内容限制在body,否则会从html整个根元素开始划分,注意中间有空格,因此查找元素不是body。

而且用body来划分,区域就是body底下所有区域,这里还是我们原来的三个区域,比较好理解。

第一个区域和第三个区域还是跟原来一样。

区别就是第二个区域第一个元素是box1,这次没有限制必须是em了,所以样式生效。

<style>
    body :nth-child(1) {
        color: red;
    }
</style>

虽然还是em1和em3变成红色,但是我们可以检查元素发现,box1也被添加上了样式:

image.png

可以回头再试试em:nth-child(n)的话会发现box1是不会被添加的。

相关文章
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
175 2
|
前端开发
CSS:高级选择器
CSS:高级选择器
176 1
|
11月前
|
前端开发
CSS中nth-child 的实用技巧
CSS中nth-child 的实用技巧
CSS中nth-child 的实用技巧
|
12月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
321 5
|
前端开发 Ruby
CSS 预编语言的区别
【10月更文挑战第24天】Sass、Less 和 Stylus 等 CSS 预编语言在语法特点、功能特性、性能表现、社区和生态系统等方面存在着不同之处。在选择使用哪种预编语言时,需要综合考虑项目需求、团队技术偏好、个人习惯等因素。你可以根据具体情况进行评估和选择,以充分发挥这些语言的优势,提高前端开发的效率和质量。
|
前端开发 开发者 UED
设备像素、css像素、设备独立像素、dpr、ppi之间的区别
【10月更文挑战第24天】在实际应用中,这些概念相互关联,共同影响着网页在不同设备上的显示表现。开发者需要了解它们之间的区别和关系,以便更好地进行网页设计和优化,确保在各种设备上都能提供良好的用户体验。
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
324 2
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
611 1
|
前端开发 JavaScript
css的引入方式和区别
css的引入方式和区别
165 0

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    112
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    138
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    110
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    85
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    208
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    232
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    125
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    61
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    117
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    158