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——齿轮转动关键代码
May 02 HTML / CSS
纯CSS3实现鼠标悬停提示气泡效果
Feb 28 HTML / CSS
一款利用html5和css3实现的3D滚动特效的教程
Jan 04 HTML / CSS
老生常谈CSS中的长度单位
Jun 27 HTML / CSS
利用CSS3实现单选框动画特效示例代码
Sep 26 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
Dec 17 HTML / CSS
html5版canvas自由拼图实例
Oct 15 HTML / CSS
用HTML5制作数字时钟的教程
May 11 HTML / CSS
Html5实现用户注册自动校验功能实例代码
May 24 HTML / CSS
详解HTML5中的picture元素响应式处理图片
Jan 03 HTML / CSS
HTML5之消息通知的使用(Web Notification)
Oct 30 HTML / CSS
css height属性中的calc方法详解
Jun 03 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
测试您的 PHP 水平的题目
2007/05/30 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python PyTorch预训练示例
2018/02/11 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python实现复制文件到指定目录
2019/10/16 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
Python的collections模块真的很好用
2021/03/01 Python
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
校园广播稿500字
2014/02/04 职场文书
年度考核自我鉴定
2014/03/19 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
团组织关系介绍信
2019/06/24 职场文书