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背景下的@font face规则
May 04 HTML / CSS
CSS3 伪类选择器 nth-child()说明
Jul 10 HTML / CSS
CSS3等相关属性制作分页导航实现代码
Dec 24 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
Oct 15 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
May 28 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
Jan 08 HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 HTML / CSS
简单的HTML5初步入门教程
Sep 29 HTML / CSS
10个最常见的HTML5面试题 附答案
Jun 06 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
Feb 25 HTML / CSS
带你了解CSS基础知识,样式
Jul 21 HTML / CSS
CSS3 Tab动画实例之背景切换动态效果
Aug 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连接被重置的解决方法
2011/02/15 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
Python isinstance判断对象类型
2008/09/06 Python
python基础教程之序列详解
2014/08/29 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
python3.x实现发送邮件功能
2018/05/22 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
2014感恩节演讲稿大全
2014/10/11 职场文书
会计专业求职信范文
2015/03/19 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
交通事故起诉书
2015/05/19 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript