首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用CSS选择每个重复类序列的最后一个子类?

在CSS中,如果你想要选择每个具有相同类名的元素的最后一个子元素,可以使用:last-of-type伪类选择器。这个选择器可以帮助你定位到同一类型的兄弟元素中的最后一个元素。

基础概念

:last-of-type伪类选择器用于匹配同类型的兄弟元素中的最后一个元素。这意味着它会选中所有具有相同标签名的元素中的最后一个。

应用场景

假设你有一系列重复的列表项,每个列表项都是一个包含多个子元素的容器,你想要为每个容器的最后一个子元素设置特定的样式。

示例代码

代码语言:txt
复制
<div class="container">
  <div class="item">Item 1</div>
  <div class="item">Item 2</div>
  <div class="item">Item 3</div>
</div>
<div class="container">
  <div class="item">Item 4</div>
  <div class="item">Item 5</div>
</div>

如果你想要为每个.container中的最后一个.item设置样式,可以使用以下CSS:

代码语言:txt
复制
.container .item:last-of-type {
  background-color: yellow;
}

这段代码会使得每个.container中的最后一个.item背景色变为黄色。

注意事项

  • :last-of-type是基于元素的类型,而不是基于类名。因此,它只会选择同类型的最后一个元素。
  • 如果你需要基于类名选择最后一个元素,可能需要结合JavaScript来实现更复杂的逻辑。

解决问题的方法

如果你遇到了无法正确选择最后一个子类的问题,首先检查以下几点:

  1. 确保你的HTML结构是正确的,每个.container确实包含了多个.item
  2. 确认没有其他CSS规则覆盖了你的:last-of-type选择器。
  3. 如果.item元素内部还有其他嵌套结构,可能需要更具体的选择器来定位。

通过以上方法,你应该能够有效地使用CSS选择每个重复类序列的最后一个子类。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

简单的聊一聊如何使用CSS的父类Has选择器

最近的:has()选择器允许您对父元素和其他祖先应用样式,本文将向您展示如何在Web应用程序开发中使用它。 在CSS的世界中,选择器是驱动我们在网页上看到的美丽且响应式设计的工作的马。...它们允许开发者根据元素的属性、位置和关系来选择和样式化HTML元素。 一个较新的CSS选择器/伪类被称为 :has ,它允许您选择每个具有与您提供给 :has() 函数的选择器匹配的子元素的元素。...何时使用:has选择器 :has() 选择器是一种CSS伪类,允许您选择包含特定子元素的元素。...我们不仅选择了文章,还选择了 span 类别应用的内容。 使用:has与:not选择 在本节中,我们将介绍如何使用 :has 伪类与 :not 。...这三篇文章被选择是因为它们都有一个 p 的HTML标签。但是如果我们移除 p 标签,只有最后一个带有“buy now” button 类的文章会保持着颜色。

1K40

如何使用css3实现一个类在线直播的队列动画

之前在群里有个朋友问了这样一个问题, 就是如何在小程序中实现类似直播平台的用户上线时的队列动画?...大家都知道在现代的Web开发中, 我们能使用Css实现的效果尽量不要用Js, 所以我们应该优先考虑用Css3来实现,但是我们要结合数据流才能实现真正的队列动画, 所以我们可以利用MVVM框架便捷的数据驱动模型来控制动画的走向...实现进入动画 我们要想实现上图的用户进入动画, 可以使用Css3的过渡动画transition,也可以使用animation动画, 由于使用场景的便捷性这里我们采用animation动画, 首先我们先写一下...} 100% { opacity: 0; } } 其实动画并不难, 我们需要控制的是如何给头部元素动态的添加这个动画, 此时我们最好的方案是通过类名, 即当满足渐出的条件时...代码如下: .hidden { opacity: 0; animation: moveOut 1.2s;} 通过以上步骤我们就实现了一个完整的类在线直播的队列动画, 动画完整css代码如下, 感兴趣的盆友可以学习参考一下

1.8K20
  • 这几个CSS概念你了解吗?

    ,它的实现原理是通过PostCSS来实现,通过给想对应的dom新增一个属性,同时给css选择器新增一个对应的属性,来对应这个唯一的dom,如下所示 ?...而css module 是怎么样实现的呢,以vue为例子,如何使用CSS module webpack 直接 引入 vue-loader 使用文档?...然后你就可以在模板中通过一个动态类绑定来使用它了 ?‍? 啊乐同学:你说CSS Module是 css 模块化的一种实现方式,还有其他CSS模块化实现方式吗?...拓展: styled-components 官网 3.CSS 原子类 其实这个概念已经很老了,本质上也是一种编写 CSS 的思想,简而言之就是通过用原子类构造选择器,比如我们定义一个base.css...学习使用CSS框架并不是最终目的,它只是一个提升生产力的工具,工具的目的是用来提升我们开发效率,最终赋能到我们的产品中去,所以不用太纠结有没有使用过这些框架,毕竟那么多个框架你是不可能每个都会用。

    1.6K20

    web前端常见面试题归纳

    优先级和权重使怎么样的 CSS选择器优先级 !...important style属性 #id .className 派生选择器 群组选择器 * CSS选择器权重 行内样式(1000)>id选择器(100)>class选择器(10)>标签选择器(1)>通用下选择器...() 对象序列化 可以把对象转换为字符串:JSON.stringfy() 可以把字符串转换为对象:JSON.parse() 设计模式 单例模式:一个类只能有一个实例,并提供一个访它的全局访问点。...,实例是子类的实例,也是父类的实例2、类新增原型方法和属性,子类都能访问到3、简单,易于实现 缺点:1、因为原型对象的属性是共享的,修改一个对象属性,其他对象的该属性也变了2、创建子类实例时,无法向父类构造函数传递参数...复制一份父类的属性或者方法给子类 优点:1、 解决了子类实例共享父类引用属性的问题 2、创建子类实例时,可以用父类构造函数传递参数 缺点:1、无法实现复用,每一个子类实例都有一个新的run函数,如果实例对象多了

    99420

    CSS规范--BEM入门

    一段时间后,新同事接手跟进需求,对样式进行修改,由于选择器是一连串的结构逻辑,看不过来,嫌麻烦,就干脆在样式文件最后用另一套选择器,加上了覆盖样式...接下来又有新的需求...最后的结果,一个元素对应多套样式...这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义。BEM命名约定更加严格,而且包含更多的信息,它们用于一个团队开发一个耗时的大项目。...关于原子类(短类)与BEM BEM可以不需要用到原子类,但是如果已经引入了类似Bootstrap的框架,也没必要强制避免使用原子类,比如pull-right、ellipsis、clearfix等等类,这些类非常实用...在项目中,使用原子类之前应该考虑一下,这个场景是否变动大而且不可复用,如果是的话,我们可以放心的使用原子类。...更有甚者,来维护这块代码的同事,直接在样式文件最后添加覆盖样式,这会造成一个非常严重的问题了:同一个元素样式零散的分布在文件的不同地方,而且定位该元素的选择器也可能各不相同。

    1.2K20

    前端高频面试题(六)(附答案)

    对象创建的方式有哪些?一般使用字面量的形式直接创建对象,但是这种创建方式对于创建大量相似对象的时候,会产生大量的重复代码。但 js和一般的面向对象的语言不同,在 ES6 之前它没有类的概念。...这种方式解决了上面的两种模式单独使用时的问题,但是由于我们是以超类型的实例来作为子类型的原型,所以调用了两次超类的构造函数,造成了子类型的原型中多了很多不必要的属性。...(2)PostCss:PostCss 是如何工作的?我们在什么场景下会使用 PostCss? 它和预处理器的不同就在于,预处理器处理的是 类CSS,而 PostCss 处理的就是 CSS 本身。...选择器的最后面的部分为关键选择器(即用来匹配目标元素的部分)。CSS选择符是从右到左进行匹配的。...(5)尽量少的去使用后代选择器,降低选择器的权重值。后代选择器的开销是最高的,尽量将选择器的深度降到最低,最高不要超过三层,更多的使用类来关联每一个标签元素。

    47430

    为什么和 CSS-in-JS 说拜拜

    我们会在文章的最后简要讨论编译时 CSS-in-JS。...现在,新组件的行有一个难看的边框,而我们却不知道为什么! 虽然这类问题可以通过使用较长的类名或更具体的选择器来解决,但作为开发者还是要确保没有类名冲突。...在样式中使用 JS 常量的能力在某些情况下可以降低重复,因为同一个常量不需要同时定义为CSS变量和 JS 常量。...在序列化过程中,Emotion也会计算出一个普通CSS的哈希值--这个哈希值就是你在生成的类名中看到的,例如css-15nl2r3。...如果MyComponent频繁地渲染(例如每次按键),重复的序列化可能会有很高的性能代价。 一个更有效的方法是把样式移到组件之外,这样序列化就会在模块加载时一次性发生,而不是在每次渲染时。

    2.4K20

    【原创】CSS选择器以及选择器优先级

    css选择器作用: 选中html文档中的标签,改变样式 css选择器分类: 基础选择器,关系选择器,伪类选择器 基础选择器: 标签选择器: 通过选中标签名,来选中符合条件的所有标签 可以选择多个相同名称的标签...通过"#id属性值"选中符合条件的所有标签 根据W3C规范,一个html文档中,id不能重复使用 注意事项: 如果id属性名用英文单词组成,多个单词间用"-"和"_"...2条件的标签 后代选择器: 用法:选择器1 选择器2 作用:选中选择器1中所有符合选择器2的子类以及次级子类的标签 亲子选择器: 用法:选择器1 > 选择器2 作用:...选中选择器1中所有符合选择器2的子类的标签,不可以选中次级子类的标签。...: 两个选择器优先级相同时,以设置的最后一个选择器样式为准 两个选择器优先级不同时: 默认样式 类选择器样式 选择器样式 选择器样式 选择器样式 选择器样式

    50320

    《手把手带你学爬虫──初级篇》第1课 基础知识

    我是div03,我的样式使用了类选择器(div02) HTML整合CSS的方式二 css写在单独的文件中,代码CrawlerLessons/codes/lesson01...,我的样式使用了类选择器(div02) 我是div03,我的样式使用了类选择器(div02) ...键值对的键和值用:冒号分割,每个键值对用,逗号分割;键是唯一的,值不需要唯一,如果键重复,那么最后一个键值对会覆盖前面的。...12 popitem()随机返回并删除字典中的一对键和值。 函数 函数是组织好的,可重复使用的,用来实现单一或者相关功能的代码段。它能够提高应用的模块性,以及代码的重复利用率。...方法重写 子类从父类继承过来的方法,不能满足子类的需求,可以对其进行重写(override) 方法 类中的函数 对象 类的实例,包括两个数据成员(类变量、实例变量)和方法 实例变量 定义在方法中的变量

    1.7K42

    2018年各大互联网前端面试题三(阿里)

    CSS属性选择器和伪类选择器的优先级? 使用css实现一个持续的动画效果 右边宽度固定,左边自适应怎么布局? 实现水平垂直居中 Flex布局用的多吗? 移动端适配怎么做的?...原理 JS 怎么实现一个类。怎么实例化这个类。 为什么 var 可以重复声明? 四种定位的区别 let与var的区别? 如何让子类继承父类的方法与属性? 怎么发送一个跨域的POST请求?...框架 Vue是如何实现双向绑定的?看过Vue源码吗? Vue中的路由你使用的哪种模式?如何与后台沟通路由? 说下你ES6、7中用到哪些东西?...使用addEventListener点击li弹出内容,并且动态添加li之后有效 使用js实现一个持续的动画效果 只允许使用css,让一个页面原有dom不可见的多种解决方法 请给Array本地对象增加一个原型方法...,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

    1.2K30

    前端面经(1)

    css失效时,页面依然可读 如何语义化:不用纯样式标签(b、i、u)、少用无语义标签(div、span)、使用语义化标签 盒模型 所有HTML元素都可以看做是一个作盒子,在CSS中,"box model...:1 Grid:父元素:display:grid 子元素:grid-template-columns:100px auto 20px CSS选择器 标签选择器 ID选择器 类选择器 组选择器 通配符选择器...后代选择器 子元素选择器 伪类选择器 Flex:1是什么 经常用于自适应布局。...这种方式解决了上面的两种模式单独使用时的问题,但是由于我们是以超类型的实例来作为子类型的原型,所以调用了两次超类的构造函数,造成了子类型的原型中多了很多不必要的属性。...(5)第五种方式是寄生式继承,寄生式继承的思路是创建一个用于封装继承过程的函数,通过传入一个对象,然后复制一个对象的副本,然后对象进行扩展,最后返回这个对象。这个扩展的过程就可以理解是一种继承。

    51020

    Java面试系列12

    //使用快速排序方法对a[0:n-1]排序 从a[0:n-1]中选择一个元素作为middle,该元素为支点 把余下的元素分割为两段left 和right,使得left中的元素都小于等于支点,而right...中的元素都大于等于支点 递归地使用快速排序方法对left 进行排序 递归地使用快速排序方法对right 进行排序 所得结果为left + middle + right 二、JAVA语言如何进行异常处理...Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它 子类的实例。...四、什么是java序列化,如何实现java序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。...序列化的实现: 将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream

    61160

    2021年web前端面试集锦

    这种方式解决了上面的两种模式单独使用时的问题,但是由于我们是以超类型的实例来作为子类型的原型,所以调用了两次超类的构造函数,造成了子类型的原型中多了很多不必要的属性。...FIN 报文,报文中会指定一个序列号。...第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 + 1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。...子类 子类的原型为父类的实例 子类.prootype = new 父类 修正子类原型为子类本身 子类.prototype.constructor=子类 new 子类即可调用父类方法 构造函数继承 写个父类...、子类 在子类中父类.call(this) 即可实现 mapState, mapGetters, mapActions, mapMutations 当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余

    40130

    腾讯课堂 IMWeb 七天前端求职提升营 Day 7

    ② 当你滚动网页,fixed 元素与浏览器窗口之间的距离是不变的。问题 3: CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3 新增伪类有那些?...CSS 选择符:① ID 选择器 (#myid)② 类选择器 (.myclassname)③ 标签选择器 (div, h1, p)④ 相邻选择器 (h1 + p)⑤ 子选择器 (ul > li)⑥ 后代选择器...important 比内联优先级高,但内联比 id 要高CSS3 新增伪类举例:p:first-of-type 选择属于其父元素的首个 元素的每个 元素。...p:last-of-type 选择属于其父元素的最后 元素的每个 元素。p:only-of-type 选择属于其父元素唯一的 元素的每个 元素。...其实这道题也很容易想到二分查找,时间复杂度为 o(logn),但是二分查找需要注意一个细节,就是当遇到重复元素时,让 mid 指针跳过所有重复元素,这也是很多粗心的小伙伴非常容易忽略的是很多面试官喜欢问的一个查找问题

    63020

    JAVA基础面试总结

    如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。...重载是在一个类里一系列参数不同名字相同的方法。 多态则是父类使用子类的方法。...: 组成int数组,再调用Arrays.sort(int[] a)实现升序;降序可从尾部开始输出; 2、方法二:重复for循环比较两值大小存入ArrayList中; 1.14 JAVA序列化 序列化就是一种用来处理对象流的机制...序 列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream...1.17一个程序编译完成后在内存中是如何存储的? 不存储在内存条上,存储在硬盘上,当需要程序运行时,程序被加载到内存条上。

    79180

    Facebook 重构:抛弃 Sass Less ,迎接原子化 CSS 时代

    CSS 权重也不是什么问题,因为我们使用的是最简单的类选择器。 我们现在通过 html 标签来添加样式,发现了一些有趣的事儿: 我们增加新功能的时候,样式表的增长减缓了。...它通过 Utility-First 的理念来解决 CSS 的一些缺点,通过抽象出一组类名 -> 原子功能的集合,来避免你为每个 div 都写一个专有的 class,然后整个网站重复写很多重复的样式。...Tailwind 已经有了足够多的原子类了啊。 那么,我们是否应该放弃原子 CSS 的想法,而仅仅使用 Tailwind CSS?...在规则冲突的情况下,生效的不是标签上 class attribute 中的最后一个类,而是样式表中最后插入的规则。 ?...在实际场景中,这些库避免在同一个元素上写入多个规则冲突的类。它们会确保标签上书写在最后的类名生效。其他的被覆盖的类名则被规律掉,甚至压根不会出现在 DOM 上。

    3K10

    小米嵌入式软件工程师笔试题目解析

    题目中告诉我们,有两个各有n个元素的有序序列,要将这两个序列归并成一个有序序列,其方法是依次从小到大取每个序列中的元素进行比较,将较小的放进一个新的序列中,直到取完一个有序序列中的所有元素。...匹配“xiaomi重复1次或5次”的字符串 B productname 匹配“xiaomi字符串前一个字符为1或3“的字符串 C productname 匹配“xiaomi重复1到3次”的字符串 D...,不能有其他语句,所以B项错误 C:选项中的方法和类中的方法重复,所以会发生编译异常,所以C项错误 4.有关Java静态初始化块说法不正确的是?...>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法 5(多选题)以下分别对变量a给出定义,正确的有() A 一个有10个指针的数组,该指针指向同一个整型数...,但不能被这个包以外的类访问,可以() A 使用 private关键字 B 让该类不使用任何关键字 C 使用public关键字 D 使用protected关键字 B default和protected的区别是

    96920

    Facebook 重构:抛弃 Sass u002F Less ,迎接原子化 CSS 时代

    CSS 权重也不是什么问题,因为我们使用的是最简单的类选择器。 我们现在通过 html 标签来添加样式,发现了一些有趣的事儿: 我们增加新功能的时候,样式表的增长减缓了。...它通过 Utility-First 的理念来解决 CSS 的一些缺点,通过抽象出一组类名 -> 原子功能的集合,来避免你为每个 div 都写一个专有的 class,然后整个网站重复写很多重复的样式。...Tailwind 已经有了足够多的原子类了啊。 那么,我们是否应该放弃原子 CSS 的想法,而仅仅使用 Tailwind CSS?...在规则冲突的情况下,生效的不是标签上 class attribute 中的最后一个类,而是样式表中最后插入的规则。...在实际场景中,这些库避免在同一个元素上写入多个规则冲突的类。它们会确保标签上书写在最后的类名生效。其他的被覆盖的类名则被规律掉,甚至压根不会出现在 DOM 上。

    3.5K50
    领券