css中:last-child不生效的解决方法


Posted in HTML / CSS onAugust 05, 2022

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

如果使用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>

展示的效果也和期望中的一样,最后一个元素文字为红色

css中:last-child不生效的解决方法

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,但是需要的效果却没有了。

css中:last-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

css中:last-child不生效的解决方法

到此这篇关于css中:last-child不生效的解决方法的文章就介绍到这了,更多相关css :last-child不生效内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS心形加载的动画源码的实现
Mar 09 HTML / CSS
CSS Grid布局教程之网格单元格布局
Dec 30 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
Jul 03 HTML / CSS
css3 实现滚动条美化效果的实例代码
Jan 06 HTML / CSS
HTML5 placeholder属性详解
Jun 22 HTML / CSS
HTML5之多线程(Web Worker)
Jan 02 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 HTML / CSS
HTML5实现文件断点续传的方法
Jan 04 HTML / CSS
HTML5实现无刷新修改URL的方法
Nov 14 HTML / CSS
CSS实现隐藏搜索框功能(动画正反向序列)
Jul 21 HTML / CSS
如何使用 resize 实现图片切换预览功能
Aug 23 HTML / CSS
微信小程序纯CSS实现无限弹幕滚动效果
Sep 23 HTML / CSS
CSS浮动引起的高度塌陷问题
Aug 05 #HTML / CSS
使用CSS实现六边形的图片效果
Aug 05 #HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 05 #HTML / CSS
纯CSS打字动画的实现示例
Aug 05 #HTML / CSS
新的CSS 伪类函数 :is() 和 :where()示例详解
前端使用svg图片改色实现示例
Jul 23 #HTML / CSS
详解flex:1什么意思
Jul 23 #HTML / CSS
You might like
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
python生成器generator用法实例分析
2015/06/04 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
python算的上脚本语言吗
2020/06/22 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
英语老师推荐信
2014/02/26 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
项目安全员岗位职责
2015/02/15 职场文书