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 Media媒体查询使用操作(推荐)
Aug 15 HTML / CSS
css3动画过渡实现鼠标跟随导航效果
Feb 08 HTML / CSS
纯CSS3实现绘制各种图形实现代码详细整理
Dec 26 HTML / CSS
利用css3实现的简单的鼠标悬停按钮
Nov 04 HTML / CSS
一款利用纯css3实现的win8加载动画的实例分析
Dec 11 HTML / CSS
利用CSS3的transition属性实现滑动效果
Aug 05 HTML / CSS
CSS3实现swap交换动画
Jan 19 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
Mar 01 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
Nov 27 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
Mar 25 HTML / CSS
详解HTML5 录音的踩坑之旅
Dec 26 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
Mar 21 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
递归列出所有文件和目录
2006/10/09 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
js身份证验证超强脚本
2008/10/26 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
javascript天然的迭代器
2010/10/29 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python3.7简单的爬虫实例详解
2019/07/08 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
基于Python中的yield表达式介绍
2019/11/19 Python
Python中无限循环需要什么条件
2020/05/27 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
大专应届生个人简历的自我评价
2013/10/15 职场文书
财务会计专业应届毕业生求职信
2013/10/18 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书