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 media queries + jQuery实现响应式导航
Sep 30 HTML / CSS
纯CSS实现菜单、导航栏的3D翻转动画效果
Apr 23 HTML / CSS
使用CSS3制作一个简单的进度条(demo)
May 23 HTML / CSS
移动端适配 使px自动转换rem
Aug 26 HTML / CSS
Html5画布_动力节点Java学院整理
Jul 13 HTML / CSS
HTML5本地存储之Database Storage应用介绍
Jan 06 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
Aug 08 HTML / CSS
html5 viewport使用方法示例详解
Dec 02 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
May 08 HTML / CSS
Html5大文件断点续传实现方法
Dec 05 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
Sep 17 HTML / CSS
Ratchet 模态框的实现
Aug 19 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数组应该有多大的分析
2009/07/30 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
处理单名多值表单的详解
2013/06/08 PHP
php7 新增功能实例总结
2020/05/25 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
Python Socket使用实例
2017/12/18 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python学生信息管理系统(完整版)
2020/04/05 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
控制工程专业个人求职信
2013/09/25 职场文书
护士岗位职责
2014/02/16 职场文书
搞笑征婚广告词
2014/03/17 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
党员承诺书格式范文
2015/04/28 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python
关于Vue中的options选项
2022/03/22 Vue.js