css -- 为什么:last-child 无效?

CSS伪类:first-child和:last-child的妙用 本文详细介绍了CSS伪类:first-child和:last-child的使用方法及其在Web开发中的重要性。通过具体示例展示了如何利用这些伪类来选择和样式化HTML元素的第一个和最后一个子元素,以及如何使用:nth-child()伪类选择特定的子元素。文章还探讨了伪类的组合使用,例如如何创建:only-child和:only-of-type的样式,以及如何通过:nth-child()伪类选择每隔n个子元素,从而实现更加复杂的布局和样式设计。 阅读详情
AI摘要

本文探讨了CSS选择器`:last-child`在处理元素样式时可能遇到的问题,通过实例展示了当`:last-child`应用于含有额外元素的情况时,无法达到预期效果。文章分析了`:last-child`的工作原理,并提供了两种解决方案:保持父元素内仅有目标类型的子元素,或者使用`:last-of-type`选择器。最后,强调了CSS选择器在避免不必要的JavaScript介入上的优势。

在产品需求中,总有对第一个或者最后一个同类元素进行特殊的样式处理。

如果使用js来判断哪个是第一个、最后一个也并不是不可以。
但是,完全属于css的管理范围为什么要去使用js呢?

css选择器出场!

下面仅展示:last-child效果

1.期望效果

代码展示:

<template>
  <div class="root-container">
    <div class="father">
      <div class="child" v-for="item in 10" :key="item">
        一共10个元素,我是第{{item}}个
        <template v-if="item== 10">(css控制我的颜色)</template>
      </div>
    </div>
  </div>
</template>
<style lang='scss' scoped>
.father {
  width: 500px;
  border: 1px solid #b2b6b6;
  text-align: center;
  .child {
    padding: 10px 0;
    &:last-child {
      color: red;
    }
  }
}
</style>

展示的效果也和期望中的一样,最后一个元素文字为红色
在这里插入图片描述

2. 非期望效果

但有时候:last-child实现的却和想象中的 不太一样!!!!
代码如下:

<template>
  <div class="root-container">
    <div class="father">
      <div class="child" v-for="item in 10" :key="item">
        一共10个元素,我是第{{item}}个
        <template v-if="item== 10">(css控制我的颜色)</template>
      </div>
      <p>我是多余的元素</p>
    </div>
  </div>
</template>
<style lang='scss' scoped>
.father {
  width: 500px;
  border: 1px solid #b2b6b6;
  text-align: center;
  .child {
    padding: 10px 0;
    &:last-child {
      color: red;
    }
  }
}
</style>

看代码也可以看出来,仅仅是多了一个p标签,明明把:last-child是设置给了.child,但是需要的效果却没有了。
在这里插入图片描述

3. 分析问题

为什么:last-child没有起作用?

3.1 el:last-child 的匹配规则

  • 1.查找 el 选择器匹配元素的所有同级元素(siblings)
  • 2.在同级元素中查找最后一个元素
  • 3.检验最后一个元素是否与选择器 el 匹配

期望中的效果实现了,是因为el:last-child匹配到的最后一个元素也是.child。
非期望效果出现,是因为el:last-child匹配到的最后一个元素也是p标签而不是.child。

4. 解决办法

方法1、
让:last-child在其父元素内没有其它的标签,即让其父元素仅包含该种类型标签

方法2、
使用其它标签选择器:last-of-type
具体使用规则 :last-of-type — MDN

在这里插入图片描述

open-mmlab / mmpose安装、使用教程 mmpose安装、使用教程mmpose安装教程1. 安装mmcv-full2. 安装MMPose2. 安装mmdet使用教程1. 预测图片2. 预测视频 mmpose mmpose是商汤旗下有又一款好用的工具箱,主要是针对姿态识别任务开发的,包括人体姿态识别和动物姿态识别。里面继承很多现成的网络可以供大家使用,并且提供了训练好的权重。用户可以更具自己的需求训练自己的数据,或者直接应用他们的结果,反正就是很全面啦!!!! github连接:https://github.com/open-mmlab/mmpos 阅读详情

相关推荐

避开这些坑!用Python ReportLab生成PDF时字体处理与中文排版的5个关键技巧

本文针对Python ReportLab库在PDF自动化生成中常见的中文排版难题,提供了五个关键技巧。内容涵盖字体注册的稳健策略、段落样式的精细控制、表格内中文的换行对齐、页面布局管理以及性能优化,旨在帮助开发者彻底解决中文乱码、排版错位等问题,生成专业美观的PDF文档。

weixin_29250403的博客 623

关于:last-child的误解

  先上一段菜鸟教程中对它的用法的解释: :last-child选择器用来匹配父元素中最后一个子元素。   我也是这么一直简单地认为的。然而这样的理解其实是不全面的。最近有遇到一个场景是选中列表中的最后一项为它添加边框。我就照着我的理解写了(错误示范): &lt;ul class="container"&gt; &lt;li class="item"&gt;one&lt;/li&gt; &lt;li class="item"&gt;two&lt;/li&gt;

lxow456的博客 2086

【TestCenter】RFC2544时延测试

本文介绍了使用Spirent TestCenter测试路由器PPPOE时延的RFC2544标准方法。RFC2544定义了三种时延类型:转发时延(LILO)、存储转发时延(LIFO)和直通时延(FIFO)。文章详细说明了测试步骤,包括测试拓扑搭建、PPPOE环境配置、RFC2544测试任务创建等关键环节,并介绍了如何设置时延参数和查看测试报告。测试结果表明,大字节帧的时延高于小字节帧,且负载越高时延越大。该测试方法遵循国际标准,可全面评估网络设备在不同负载下的性能表现。

lai_2020的博客 1399

Element+Vue中css里的&符号报错

.el-row { margin-bottom: 20px; &amp;:last-child { margin-bottom: 0; } } 代替为: .el-row { margin-bottom: 20px; } .el-row : last-child { margin-bottom: 0; } ps: &am...

科技向善 5488

保姆级教程:在mmdetection中手动计算并可视化P、R、F1值(附完整代码)

本文提供了一份详细的mmdetection教程,指导开发者如何手动计算并可视化精确率(P)、召回率(R)和F1值。通过完整的代码示例和清晰的步骤说明,帮助用户深入理解目标检测模型的性能评估方法,特别适合需要精细分析模型表现的计算机视觉研究人员和工程师。

weixin_29038303的博客 398

【RF】Receiver Function接收函数:从理论到实践的深度解析

本文深入解析地震学中的接收函数(Receiver Function, RF)技术,从理论原理到实践操作。文章将RF比作地球的“听诊器”,详细阐述了其通过反褶积剥离震源影响、揭示地下结构(如莫霍面)的核心机制,并提供了使用Python和rf库进行数据处理、计算、动校正与叠加的完整实战流程,同时探讨了其应用、局限性与常见问题的解决方案。

Jerry的专栏 121

css伪类:last-child或:first-child不生效

css伪类:last-child或:first-child不生效

qq_45327886的博客 3791

在Ultralytics YOLO中添加/更换模块详细指南

使用参数继承 my_module_args: &my_args [64, 3, 0.5] # 定义参数模板 backbone: - [-1, 1, MyModule, *my_args] # 引用参数。

MR_Colorful的博客 2583

vue 手写一个步骤条&last-child不起作用的问题

因为你last-child用错地方了,如果你是在set-2上面使用last-child,肯定 可以用,如果你用在height上边 肯定是不可以的。咱们在这个元素中v-if判断 一下就好了 v-if=“index!=options.length - 1”2、怎么才能在不使用last-child使最后一个隐藏呢。在height使用last:child。可以看到是不起 作用的,所以就用到js。1、为什么last-child不能用。这个会隐藏最后一个元素的border。

早晚的博客 1073

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4758

YOLOv11【第一章:零基础入门篇·第10节】YOLOv11项目实战:从零搭建检测系统!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 5768

last-child不生效问题

写css的时候碰到一个神奇的问题,first-child生效、但last-child失效。 观察样式和代码结构如下: &lt;div class="c0"&gt; &lt;div class="c1"&gt;&lt;/div&gt; &lt;div class="c1"&gt;&lt;/div&gt; &lt;div class="loading"&gt;&lt;/div&gt; &lt;/div&gt; .c0 .c1:last-child { padding: 10px; }

HYeeee的博客 5484

【NI Multisim 14.0原理图设计基础——元器件分类】

电阻(RESISTOR):该元器件栏中的电阻都是标称电阻,是根据真实电阻元器件而设计的,其电阻值不能改变。 排阻(RESISTOR PACK):相当于多个电阻并列封装在一个壳内,它们具有相同的阻值。 电位器(POTENTIOMETER):即可调电阻,可以通过键盘字母动态调节电阻,大写表示增加电阻值,小写表示减小电阻值,调节增量可以设置。 电容(CAPACITOR):所有电容都是无极性的,不能改变参数,没有考虑误差,也未考虑耐压大小。 电解电容器(CAP_ELECTROLIT):所有电容都是有极性的,“+”极

RL2698853114的博客 4万+

:last-of-type , :last-child 无效的问题

:last-of-type 无效碰到的问题: &lt;style&gt; .c:last-of-type{ background:red; } &lt;/style&gt; eg 1: &lt;p&gt;这是第一个段落。&lt;/p&gt; &lt;p class='c'&gt;这是第二个段落。&lt;/p&gt; &lt;p class='c'&gt;这是第三个段落。&lt;/p&gt; ...

BigOrange的博客 8742

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

关于Css的选择器 :first-child和:last-child所踩过的坑

做项目时用到了last-child选择器,结果没有出现预期的效果,查了下W3C的文档发现我想的没那么简单。 就拿:last-child举例,文档中对其的解释是: 指定属于其父元素的最后一个子元素的 p 元素的背景色 什么意思呢?我详细说明一下: 假如是 div:last-child 那么该选择器最终选择的元素是 : 对所有div标签的父元素的其最后一个子元素div 设置样式,也就是说,其父元素的最...

weixin_44710964的博客 4073

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CSS选取子标签元素:first-child、last-child

CSS(层叠样式表)是一种用于描述HTML或XML(包括如SVG、MathML等派生语言)文档样式的计算机语言。CSS是网页设计的重要组成部分,它能够定义网页的布局、颜色、字体和动画等。

日常笔记/总结/系列知识梳理 7124

解决css样式中first-child和last-child不生效的问题

前端项目需要使用v-for指令来渲染一个问题回复列表,列表的第一和最后需要显示不同的样式,便使用到了first-child和last-child这两个CSS属性,在编码后发现 last-child 和 first child 中的样式不生效,经过查找资料后解决了这个不生效问题的同时也加深了印象。 首先我们得明白first-child和last-child是干什么用的: first-child选择器用于选取属于其父元素的首个子元素的指定选择器。 last-c...

LYQ 1万+

CSS: :last-child 与 :first-child的坑

原文链接 前言 前端开发中,我们有时候要为第一个或最后一个元素设置进行某些特殊的操作。CSS默认为我们提供了:last-child和:first-child选择器, 但是在实际使用中,要特别需要注意一个点。 开始 :last-child:指定属于其父元素的最后一个子元素的 p 元素的背景色。(来自W3C的官方描述) 实践 HTML: &lt;div class="div1"&gt...

weixin_39015132的博客 6万+

CSS选择器:第一个、最后一个、单双、奇偶、第n个、反选,nth-child,last-child,first-child

CSS选择器:第一个、最后一个、单双、奇偶、第n个、反选,nth-child,last-child,first-child、not

colin5210的博客 1万+

css伪类选择器之first-child,last-child,nth-child()

今天没上班,脑袋不太清晰,就简单给小白们讲一个很实用的css伪类选择器,这个在你们写导航或者其他列表类的css时特别实用,而且利于后期维护。 这个选择器就是 元素:fist-child / last-child / nth-child(子节点序号) 例如此时我们需要写一个一级导航: &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt;...

qq_43390061的博客 2196

first-child和last-child的一点理解

在看CSS时,看到first-child和last-child,看了点资料,谈谈自己的感想。 first-child选择器用于选取属于其父元素的首个子元素的指定选择器。 last-child选择器用于选取属于其父元素的最后一个子元素的指定选择器。 我们来看两个简单的例子: a: first-child {color:yellow;} p: last-child {background: pink;} 从这两个例子我们可以看出first-child和last-child的含义。这两个选择器实际上是一种

keanuhrb的博客 8652

CSS 选择器 :last-child与:last-of-type的区别

:last-child----represents the last element among a group of sibling elements. CSS伪类 :last-child 代表在一群兄弟元素中的最后一个元素。 举个例子: 从代码和图可以看出:last-child选择了最后一个li标签。 同时,我们换另外一段代码,看看是否还有这样的效果。 从代码和图可以看出,:last-child并没有起到我们想要的作用。如果,这个时候去掉最后的di

包磊磊的博客 2682

CSS的选择器 :first-child和:last-child

转载!!!原文地址:https://blog.youkuaiyun.com/weixin_44710964/article/details/104502602?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.control&amp;spm=1001.2101.3001.4242 last-child选择器查了下W3C的文档发现我想的没那么简单。 就拿:last-child举例,文档中对其的解释是:

Learning_xzj的博客 8748

CSS 伪类选择器 last-child 和 last-of-type 的区别

在日常前端开发工作中,总有最后一个同类元素进行特殊的样式处理需求。我们一般会用到 CSS 伪类:last-child 或:last-of-type,但有时会遇到不起作用的效果,基于此,本文通过示例代码详细介绍二者的区别,希望对大家的学习和工作有所帮助。...

将PHP Web开发进行到底 3746

【CSS】css选择器和css获取第n个元素(:nth-of-type(n)、:nth-child(n)、first-child和last-child)

二、:nth-of-type、:nth-child的区别 :nth-of-type(n):选择器匹配属于父元素的特定类型的第N个子元素 所有兄弟节点中找到第三个p标签背景为红色。所以,3背景为红。 :nth-child(n):选择器匹配属于其父元素的第 N 个子元素,不论元素的类型 找父元素的第三个子元素,如果该子元素为p,则其变为黄色,如果,第三个子元素不是p元素,则没有子元素的背景变为黄色。 :first-child:获取元素的第 1 个子元素 :last-child:获取元素的最后一个个子元素 效

m0_61049675的博客 3077

CSS选择器之:first-child,:last-child

定义 :first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。 提示:p:last-child 等同于 p:nth-first-child(1)。 :last-child 选择器匹配属于其父元素的最后一个子元素的每个元素。 提示:p:last-child 等同于 p:nth-last-child(1)。 直接看定义稍微有点绕,定义中最关键的就是属于其父元素。如果不能...

爪哇犀牛 3872
上一篇: uni-app -- 授权获取个人信息-登录注册流程
下一篇: uni-app -- 小程序检查更新
Dark_programmer
博客等级 码龄7年 9073粉丝 307原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值