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 毛玻璃效果
Aug 14 HTML / CSS
HTML5 本地存储 LocalStorage详解
Jun 24 HTML / CSS
HTML5离线缓存Manifest是什么
Mar 09 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
Sep 03 HTML / CSS
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
Dec 14 HTML / CSS
html+js 实现markdown编辑器效果
Oct 23 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
Aug 19 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
Dec 08 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
Jan 22 HTML / CSS
关于CSS自定义属性与前端页面的主题切换问题
Mar 21 HTML / CSS
CSS list-style-type属性使用方法
May 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
一分钟理解js闭包
2016/05/04 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
Numpy array数据的增、删、改、查实例
2018/06/04 Python
python 实现return返回多个值
2019/11/19 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
数控专业个人求职信范例
2013/11/29 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
2015年电教工作总结
2015/05/26 职场文书
任命书格式范文
2015/09/22 职场文书
怎样写好工作计划
2019/04/10 职场文书
Python中的 Set 与 dict
2022/03/13 Python