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 相关文章推荐
一款纯css3实现简单的checkbox复选框和radio单选框
Nov 05 HTML / CSS
CSS3中currentColor关键字的妙用
Feb 27 HTML / CSS
详解css3中 text-fill-color属性
Jul 08 HTML / CSS
animation和transition的区别
Oct 12 HTML / CSS
css3 利用transform打造走动的2D时钟
Oct 20 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
Nov 17 HTML / CSS
HTML5网页音乐播放器的示例代码
Nov 09 HTML / CSS
HTML5上传文件显示进度的实现代码
Aug 30 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
Jun 30 HTML / CSS
使用phonegap创建联系人的实现方法
Mar 30 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
Mar 20 HTML / CSS
详解如何使用rem或viewport进行移动端适配
Aug 14 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
Look And Say 序列php实现代码
2011/05/22 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python获取当前路径实现代码
2017/05/08 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
python中os.remove()用法及注意事项
2021/01/31 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
广州迈达威.net面试题目
2012/03/10 面试题
中国梦我的梦演讲稿
2014/04/23 职场文书
初中学生评语大全
2014/04/24 职场文书
青岛海底世界导游词
2015/02/11 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
毕业欢送会致辞
2015/07/29 职场文书
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server