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绘制百度的小度熊
Oct 29 HTML / CSS
CSS3 完美实现圆角效果
Jul 13 HTML / CSS
CSS3 选择器 基本选择器介绍
Jan 21 HTML / CSS
CSS3图片旋转特效(360/60/-360度)
Oct 10 HTML / CSS
CSS3区域模块region相关编写示例
Aug 28 HTML / CSS
纯css实现照片墙3D效果的示例代码
Nov 13 HTML / CSS
CSS3 实现的火焰动画
Dec 07 HTML / CSS
html5 canvas 使用示例
Oct 22 HTML / CSS
html5记忆翻牌游戏实现思路及代码
Jul 25 HTML / CSS
HTML5 manifest离线缓存的示例代码
Aug 08 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
Apr 23 HTML / CSS
如何使用 resize 实现图片切换预览功能
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(1) php开发环境配置
2010/02/15 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
比较完整的微信开发php代码
2016/08/02 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
用于table内容排序
2006/07/21 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python中的类与对象之描述符详解
2015/03/27 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
python破解zip加密文件的方法
2018/05/31 Python
使用pandas读取文件的实现
2019/07/31 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
python 下载文件的多种方法汇总
2020/11/17 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
linux比较文件内容的命令是什么
2015/09/23 面试题
管理学院毕业生自荐信范文
2014/03/10 职场文书
2014年施工员工作总结
2014/11/18 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
2019思想汇报范文
2019/05/21 职场文书
Python3 如何开启自带http服务
2021/05/18 Python