当前位置: 首页 > news >正文

css伪类:last-child或:first-child不生效

目录

一、问题

二、原因及解决方法

三、总结


tiips:如嫌繁琐,直接移步总结即可!

一、问题

1.想使用伪类:last-child给 for循环出来的最后一个元素单独添加样式。但是发现无论怎么写都没有添加上去。

2.真是奇怪呀,明明写的没有问题呀,但是检查元素的时候确实看不到样式。

二、原因及解决方法

1.预期效果:最后一个元素 红色;最后一个元素绿色

    html如下,效果如下图2-1所示

<template><div class="test-area"><divclass="test-box"v-for="(firstItem, firstKey) of firstData":key="firstKey">{{ firstItem.label }}</div><div class="other-area"></div></div>
</template>
<script lang="scss" scoped>.test-area {color: #333;.test-box {&:last-child {color: green;}&:first-child {color: red;}}}
</script>
图 2-1

2.为什么 最后一个元素不是绿色呢? 为什么 :first-child可以,:last-child不生效呢

检查元素,发现第一个元素添加了 :frist-child伪类样式,最后一个元素却没有。如图2-2所示

图 2-2

3.删除        <div class="other-area"></div>   竟然好了

图 2-3

4.把   <div class="other-area"></div> 放在第一个test-box前面,:first-child竟然失效了!!!!!!

图 2-4

5.原因::first-child只在被选中的第一个元素前面没有其他元素才生效;

 :last-child只在被选中的最后一个元素后面没有其他元素时才生效

上面的代码中.test-box:last-child后面还有同级的元素 other-area,所以不生效

6.解决方法:在被循环的test-box外面添加一个父盒子如图2-5所示

代码如下:

<template><div class="test-area"><div class="box-area"><divclass="test-box"v-for="(firstItem, firstKey) of firstData":key="firstKey">{{ firstItem.label }}</div></div><div class="other-area"></div></div></template>
<script lang="scss" scoped>.test-area {color: #333;.test-box {&:last-child {color: green;}&:first-child {color: red;}}}
</script>

三、总结

1. :first-child,:last-child生效的前提

:first-child只在被选中的第一个元素前面没有其他元素才生效;

 :last-child只在被选中的最后一个元素后面没有其他元素时才生效

/*

希望对你有帮助!

如有错误,欢迎指正,非常感谢!

*/

相关文章:

  • 【数据库】MySQL数据库学习涵盖的多个方面
  • vue项目安装下载项目包,报错clear up some disk space and try again
  • python学习25:python中的元组(tuple)
  • 【C语言】——指针八:指针运算笔试题解析
  • 明日周刊-第5期
  • Unity框架,ET框架8.1版本的打包流程记录
  • Linux——gdb
  • 计算机毕业设计选题之基于SSM的旅游管理系统【源码+PPT+文档+包运行成功+部署讲解】
  • Nginx: proxy_set_header 与 add_header 区别
  • 卫星遥感监测森林植被健康度
  • 影院座位选择简易实现(uniapp)
  • 【Qt】:常用控件(一:概述和QWidget核心属性)
  • 容器和K8s常见概念
  • 理解数学概念——整函数(复平面可积函数)
  • 主流公链文章整理
  • 【面试系列】之二:关于js原型
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2019年如何成为全栈工程师?
  • Elasticsearch 参考指南(升级前重新索引)
  • JS变量作用域
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • mysql外键的使用
  • Shell编程
  • vue-loader 源码解析系列之 selector
  • vue-router 实现分析
  • vuex 学习笔记 01
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Vue学习第二天
  • 构造函数(constructor)与原型链(prototype)关系
  • 前端知识点整理(待续)
  • 悄悄地说一个bug
  • 实现菜单下拉伸展折叠效果demo
  • 实现简单的正则表达式引擎
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 问题之ssh中Host key verification failed的解决
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​【已解决】npm install​卡主不动的情况
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #### go map 底层结构 ####
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (03)光刻——半导体电路的绘制
  • (06)Hive——正则表达式
  • (11)MATLAB PCA+SVM 人脸识别
  • (2020)Java后端开发----(面试题和笔试题)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)springcloud实战之config配置中心
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • ***监测系统的构建(chkrootkit )
  • **PHP二维数组遍历时同时赋值
  • *Django中的Ajax 纯js的书写样式1